Function at 0x830d00
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov eax, dword [ecx]
mov esi, edx
mov dword [esp + 4], ecx
mov dword [esp + 0x60], eax
call fcn.007f7590
mov ebx, dword [esi + 0x24]
movsx edx, word [esi + 0x2a]
mov dword [esp + 8], eax
mov dword [esp], esi
test bl, bl
mov dword [esp + 0x20], edx
js 0x830d43
mov dword [esp + 0x1c], 0
mov dword [esp + 0x58], 1
jmp 0x830d5a
mov ecx, esi
call fcn.00792930
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 0x32]
mov dword [esp + 0x58], eax
mov al, byte [esp + 0xbc]
mov ebp, dword [esp + 0xc8]
test ebx, 0x800
mov byte [esp + 0xf], al
je 0x8310fe
mov eax, dword [esp + 0xb0]
mov ecx, 3
xor esi, esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x10], 0
inc eax
mov dword [esp + 0x24], eax
mov eax, fcn.007a87e0
sub ecx, eax
mov eax, dword [esp]
mov dword [esp + 0x28], ecx
test dx, dx
mov dword [esp + 0x30], esi
jle 0x8310b0
cmp dword [esp + 0x10], 0
sete byte [esp + 0x54]
xor ebx, ebx
mov edi, dword [eax + 4]
lea esi, [ebx + ebx*4]
mov cl, byte [edi + esi*4 + 0xc]
test cl, cl
je 0x8310a7
movsx eax, word [eax + 0x28]
cmp ebx, eax
jne 0x830de4
mov eax, dword [esp]
jmp 0x8310a7
movzx eax, word [edi + esi*4 + 0x10]
cmp dword [esp + 0x10], 0
jne 0x830e0a
mov edx, eax
and edx, 0x60
test dx, dx
mov edx, dword [esp + 0x20]
je 0x830e0a
inc dword [esp + 0x38]
mov eax, dword [esp]
jmp 0x8310a7
test ebp, ebp
je 0x830e26
test al, 0x60
jne 0x830e26
mov edx, dword [ebp + ebx*4]
test edx, edx
mov edx, dword [esp + 0x20]
jns 0x830e26
mov eax, dword [esp]
jmp 0x8310a7
cmp cl, 0xb
mov ch, 2
je 0x830e2f
mov ch, cl
cmp byte [esp + 0xbc], 0xb
je 0x830e42
mov cl, byte [esp + 0xbc]
mov ch, cl
cmp ch, 5
jne 0x830ec0
cmp dword [esp + 0x10], 0
jne 0x830eae
cmp dword [edi + esi*4 + 4], 0
je 0x830eae
mov ecx, dword [esp]
lea eax, [edi + esi*4 + 4]
movsx edx, bx
mov dword [esp + 0x18], eax
call fcn.007f9520
movsx esi, ax
mov edi, dword [esp + 8]
mov edx, 0x33
add esi, dword [esp + 0x24]
mov ecx, edi
push esi
call fcn.007f9600
add esp, 4
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x30]
mov dword [esp + 0x14], eax
mov edx, dword [ecx]
mov ecx, dword [esp + 4]
push esi
call fcn.007f7750
add esp, 4
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.007f75c0
jmp 0x8310a0
mov ecx, dword [esp]
movsx edx, bx
call fcn.007f9520
cwde
add eax, dword [esp + 0x24]
jmp 0x830f10
mov cl, byte [esp + 0x54]
test al, 0x60
sete al
xor cl, 1
test al, cl
je 0x830ed8
mov eax, dword [esp]
jmp 0x8310a7
movzx eax, ch
mov byte [esp + 0x14], ch
mov ecx, dword [esp]
movsx edx, bx
mov dword [esp + 0x18], eax
call fcn.007f9520
cwde
mov cl, byte [esp + 0x14]
add eax, dword [esp + 0x24]
cmp cl, 1
jne 0x830f02
mov dword [esp + 0x14], eax
jmp 0x830f25
cmp cl, 3
je 0x830efc
cmp cl, 2
jne 0x831087
mov ecx, dword [esp + 4]
mov dword [esp + 0x14], eax
call fcn.007fc3c0
mov dword [esp + 0x18], 2
mov ebp, dword [esp + 0x28]
movzx ecx, byte [0xbba5cf]
mov eax, ebp
xor eax, fcn.007a87e0
sete al
not al
and al, 7
movzx eax, al
bt ecx, eax
jb 0x831026
mov al, byte [0xbba5cf]
mov ecx, ebp
mov dl, 1
xor ecx, fcn.007a87e0
sete cl
not cl
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbba5cf], dl
jne 0x830f4f
mov ecx, ebp
movzx eax, al
xor ecx, fcn.007a87e0
sete cl
not cl
and cl, 7
xor cl, 7
movzx ecx, cl
bt eax, ecx
jae 0x830faf
mov eax, ebp
movzx ecx, byte [0xbba5cf]
xor eax, fcn.007a87e0
sete al
not al
and al, 7
movzx eax, al
bt ecx, eax
jae 0x830f90
jmp 0x831026
mov eax, ebp
movzx ecx, byte [0xbba5cf]
xor eax, fcn.007a87e0
sete al
not al
and al, 7
movzx eax, al
bt ecx, eax
jb 0x83100a
mov eax, ebp
xor ecx, ecx
mov edx, dword [0xbba5c4]
xor eax, fcn.007a87e0
sete cl
xor ecx, 0x2044d0df
lea eax, [ecx + 0xe00]
and cl, 7
xor edx, eax
mov dword [0xbba5c4], edx
not edx
imul edx, eax
xor dword [0xbba5c8], edx
mov dl, 1
shl dl, cl
or byte [0xbba5cf], dl
mov eax, ebp
xor eax, fcn.007a87e0
mov al, 0xfe
sete cl
not cl
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbba5cf], al
push dword [edi + esi*4]
mov esi, dword [esp + 4]
push dword [esi]
push 0xbba5c4
push dword [esp + 0x6c]
call fcn.0078df10
add esp, 0x10
mov ebp, dword [esp + 8]
mov edi, eax
mov edx, 0x43
mov ecx, ebp
push dword [esp + 0x14]
push dword [esp + 0x1c]
push 0x513
call fcn.007d10f0
add esp, 0xc
mov ecx, ebp
mov edx, edi
push 0xfffffffffffffff9
call fcn.007f7b70
add esp, 4
mov ecx, ebp
mov edx, 1
call fcn.0078e010
mov ebp, dword [esp + 0xc8]
mov eax, esi
jmp 0x8310a3
mov ecx, dword [esp + 8]
mov edx, 0x32
push dword [esp + 0xc0]
push eax
call fcn.007d10d0
add esp, 8
mov eax, dword [esp]
mov edx, dword [esp + 0x20]
inc ebx
cmp ebx, edx
jne 0x830dc2
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x30]
jne 0x8310fe
mov eax, esi
or eax, dword [esp + 0x38]
je 0x8310fe
mov eax, dword [esp]
test esi, esi
mov dword [esp + 0x10], 1
jle 0x830da9
test byte [eax + 0x24], 0x60
je 0x830da9
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 4]
push eax
call fcn.00830980
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 4]
add esp, 4
jmp 0x830da9
mov eax, dword [esp]
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 8]
mov edi, dword [eax + 0x18]
mov eax, dword [esp + 0xb0]
test edi, edi
je 0x83123e
mov ecx, dword [esp + 0x60]
test byte [ecx + 0x21], 2
jne 0x83123e
mov ecx, dword [esp + 4]
not eax
mov dword [ecx + 0x34], eax
cmp dword [edi], 0
jle 0x83122c
cmp byte [esp + 0xbc], 0xb
mov al, 2
je 0x831151
mov al, byte [esp + 0xbc]
movzx ecx, byte [esp + 0xb8]
movzx eax, al
xor ebp, ebp
mov dword [esp + 0x38], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0xc8]
lea esi, [ebp + ebp*4]
mov ebx, dword [edi + esi*4 + 4]
test edx, edx
je 0x831198
mov ecx, ebx
push dword [esp + 0x18]
call fcn.00830520
add esp, 4
test eax, eax
jne 0x831198
mov ebx, dword [esp + 8]
jmp 0x831223
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.007fb640
push 0x10
mov dword [esp + 0x24], eax
push eax
push ebx
push edi
call fcn.00800000
add esp, 0x10
mov ebx, dword [esp + 0x10]
cmp ebx, 4
jne 0x8311dd
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc0]
mov ecx, ebx
call fcn.007f7790
mov edi, dword [esp + 0x38]
mov dword [esp + 0x10], 4
jmp 0x831218
mov edi, dword [esp + 0x38]
mov eax, dword [edi + esi*4 + 8]
test eax, eax
jne 0x8311ee
mov eax, dword [esp]
mov eax, dword [eax]
cmp ebx, 5
mov ecx, 2
mov edx, 0x113
cmove ebx, ecx
mov ecx, dword [esp + 4]
push 3
push 0
push eax
mov dword [esp + 0x1c], ebx
push ebx
call fcn.007fc3d0
add esp, 0x10
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x20]
mov ecx, ebx
call fcn.007fbd70
inc ebp
cmp ebp, dword [edi]
jl 0x83116a
mov eax, dword [esp + 4]
mov esi, dword [esp + 0xcc]
mov dword [eax + 0x34], 0
test esi, esi
jne 0x831256
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], 0
xor esi, esi
jmp 0x831297
cmp dword [esi], 0
jne 0x83126a
mov dword [esp + 0x5c], 0
mov byte [esp + 0xf], 4
jmp 0x83124a
mov eax, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x831287
mov dword [esp + 0x5c], 0
mov dword [esp + 0x30], 0
jmp 0x831297
mov ecx, ebx
mov edx, 0xb
call fcn.007f75b0
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x68], esi
mov eax, dword [eax + 0x20]
test eax, 0x6000
jne 0x8312c0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
xor ecx, ecx
jmp 0x831360
test eax, 0x2000
je 0x83130b
mov ecx, dword [esp + 4]
mov edx, dword [esp]
mov dword [esp + 0x50], 0
push 0
push 0
push 0x7e
call fcn.0082cc40
add esp, 0xc
mov cl, 1
test eax, eax
mov dword [esp + 0x4c], eax
jne 0x831306
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0
push 0
call fcn.0082ccb0
add esp, 8
test eax, eax
setne cl
movzx eax, cl
jmp 0x83132e
mov ecx, dword [esp + 4]
mov edx, dword [esp]
mov dword [esp + 0x50], 0
push 0
push 0
call fcn.0082ccb0
add esp, 8
mov dword [esp + 0x4c], 0
test eax, eax
jne 0x831336
xor ecx, ecx
jmp 0x831360
mov esi, dword [esp + 4]
mov ecx, ebx
mov edx, 0x45
mov edi, dword [esi + 0x2c]
inc edi
mov dword [esi + 0x2c], edi
push edi
push 0
call fcn.007d10d0
add esp, 8
mov ecx, esi
call fcn.007fb640
mov ecx, edi
mov dword [esp + 0x50], eax
xor edi, edi
mov eax, dword [esp]
cmp byte [esp + 0xb8], 0
mov esi, 0
mov ebp, 0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
je 0x831621
cmp dword [esp + 0x1c], 0
mov esi, 0
mov ebp, 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jne 0x831621
mov ecx, dword [esp + 4]
mov esi, eax
call fcn.007fb640
mov cl, byte [esi + 0x32]
mov dword [esp + 0x10], eax
mov al, 2
cmp cl, 0xb
je 0x8313d1
mov eax, ecx
cmp byte [esp + 0xf], 0xb
je 0x8313dc
mov al, byte [esp + 0xf]
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x831401
cmp dword [ecx + 0x10], 0
jne 0x831401
xor eax, eax
cmp dword [ecx + 8], 0
mov dword [esp + 0x2c], 0
setne al
lea ecx, [eax + eax + 4]
jmp 0x831440
cmp byte [esp + 0xf], 5
movzx ecx, al
jne 0x831415
mov dword [esp + 0x2c], 0
jmp 0x831440
cmp cl, 5
jne 0x83140b
mov eax, dword [esp]
mov ecx, 5
cmp dword [eax + 8], 0
je 0x83140b
mov ecx, dword [esp + 8]
mov edx, 0xb
call fcn.007f75b0
mov ecx, 5
inc eax
mov dword [esp + 0x2c], eax
mov ebp, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
test ebp, ebp
je 0x831483
mov ecx, esi
mov edx, 0x35
push ebp
push ebx
push eax
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, 0x90
call fcn.0078e010
mov eax, dword [esp + 0xb0]
mov edx, 0x20
mov ecx, esi
push eax
push ebx
push dword [esp + 0xb0]
call fcn.007d10f0
add esp, 0xc
mov edx, dword [esp + 0x20]
mov esi, ebx
mov eax, edx
dec al
cmp al, 5
ja case.default.0x8314ac
movzx eax, al
jmp dword [eax*4 + 0xb59e48]
mov edx, 2
mov ecx, dword [esp + 4]
push dword [esp]
call fcn.00832150
add esp, 4
mov ebx, dword [esp + 8]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jmp 0x8315ef
mov eax, dword [esp + 0x64]
test eax, eax
je 0x831558
mov esi, dword [esp + 4]
mov ebp, eax
mov ecx, esi
call fcn.008106b0
mov edx, dword [esp]
mov ecx, esi
push 0xffffffffffffffff
push 1
push 5
push 0
push 1
push dword [esp + 0xc4]
push dword [esp + 0xc4]
push dword [esp + 0xc4]
push dword [esp + 0x6c]
call fcn.0082d4f0
add esp, 0x24
mov ebx, dword [esp + 8]
mov edx, 0x52
mov ecx, ebx
push 1
push ebp
call fcn.007d10d0
add esp, 8
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], 1
jmp 0x8315f3
mov esi, dword [esp]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], 0
cmp dword [esi + 8], 0
jne 0x83157f
mov esi, dword [esp + 0x10]
jmp 0x8315f3
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.008106b0
mov ecx, edi
xor edi, edi
mov edx, esi
push 0xffffffffffffffff
push 0
push dword [esp + 0xb4]
push dword [esp + 0xb4]
call fcn.0082e1a0
add esp, 0x10
mov esi, dword [esp + 0x10]
jmp 0x8315f3
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x68]
push dword [esp + 0xa8]
push 0
push dword [esp + 8]
call fcn.00832420
add esp, 0xc
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0xc0]
mov ecx, ebx
call fcn.007f7790
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov ebp, dword [esp + 0x2c]
mov ecx, ebx
mov edx, esi
call fcn.007fbd70
test ebp, ebp
jne 0x831606
xor esi, esi
xor ebp, ebp
jmp 0x83161e
mov ecx, ebx
mov edx, 0xb
call fcn.007f75b0
lea edx, [ebp - 1]
mov ecx, ebx
mov esi, eax
call fcn.007f75c0
mov eax, dword [esp]
mov dword [esp + 0x2c], ebp
mov ebp, dword [eax + 8]
mov dword [esp + 0x88], esi
test ebp, ebp
jne 0x831648
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], 0
mov dword [esp + 0x34], eax
jmp 0x831dd2
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x54], 0
mov dword [esp + 0x80], 0
inc ecx
test eax, eax
mov edx, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xb0]
sete al
cmp dword [esp + 0x4c], 0
lea esi, [ecx + 1]
not ecx
mov dword [esp + 0x38], esi
lea esi, [edx + 1]
sete dl
xor edi, edi
mov dword [esp + 0x20], ecx
or dl, al
mov eax, dword [esp + 0x50]
mov dword [esp + 0x8c], esi
mov byte [esp + 0x4b], dl
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa4]
cmp dword [eax + edi*4], 0
je 0x831dc6
cmp dword [esp + 0x30], ebp
jne 0x8316e6
mov ecx, ebx
xor edx, edx
call fcn.007f7790
mov edx, dword [esp + 0x5c]
mov ecx, ebx
mov dword [esp + 0x80], eax
call fcn.007f75c0
mov eax, dword [esp + 0x84]
jmp 0x8316ef
mov ecx, dword [esp + 4]
call fcn.007fb640
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
cmp ecx, ebp
sete al
test ecx, ecx
sete cl
or cl, al
cmp cl, 1
jne 0x831726
cmp byte [esp + 0x54], 0
jne 0x831726
mov edx, dword [esp]
mov ecx, ebx
push dword [esp + 0x38]
call fcn.008019d0
add esp, 4
mov al, 1
mov dword [esp + 0x54], eax
cmp dword [ebp + 0x24], 0
mov ebx, dword [esp + 0xa4]
je 0x83176c
mov ecx, dword [esp + 8]
mov edx, 0x48
push dword [ebx + edi*4]
push 0
call fcn.007d10d0
add esp, 8
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x20]
mov dword [esi + 0x34], eax
mov ecx, esi
mov edx, dword [ebp + 0x24]
push dword [esp + 0x18]
call fcn.00810c90
add esp, 4
mov dword [esi + 0x34], 0
mov ecx, dword [ebx + edi*4]
mov dword [esp + 0x14], edi
xor edi, edi
cmp word [ebp + 0x34], 0
lea eax, [ecx + 1]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x10], eax
jne 0x831792
mov ebx, dword [esp + 8]
mov eax, ecx
jmp 0x83183f
mov ebx, dword [esp + 8]
mov eax, dword [ebp + 4]
movzx eax, word [eax + edi*2]
cmp ax, 0xffff
je 0x8317e2
cmp ax, 0xfffe
jne 0x8317d9
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x20]
lea ecx, [edi + edi*4]
mov dword [esi + 0x34], eax
mov eax, dword [ebp + 0x28]
mov edx, dword [eax + ecx*4 + 4]
mov eax, dword [esp + 0x10]
mov ecx, esi
lea eax, [edi + eax]
push eax
call fcn.00810df0
add esp, 4
mov dword [esi + 0x34], 0
jmp 0x831822
mov ecx, dword [esp]
cmp ax, word [ecx + 0x28]
jne 0x8317fa
mov eax, dword [esp + 0x10]
mov ecx, ebx
mov edx, 0x4f
lea eax, [edi + eax]
push eax
push dword [esp + 0xb4]
jmp 0x83181a
mov ecx, dword [esp]
movsx edx, ax
call fcn.007f9520
mov ecx, dword [esp + 0x10]
cwde
mov edx, 0x4e
add eax, dword [esp + 0x38]
lea esi, [edi + ecx]
mov ecx, ebx
push esi
push eax
call fcn.007d10d0
add esp, 8
movzx ecx, word [ebp + 0x34]
inc edi
cmp edi, ecx
jb 0x831796
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xa4]
mov edi, ecx
mov eax, dword [edx + eax*4]
movzx esi, di
mov ecx, ebx
mov edx, 0x5b
push eax
push esi
push dword [esp + 0x18]
call fcn.007d10f0
add esp, 0xc
cmp byte [esp + 0xb8], 0
jne 0x831885
cmp dword [esp + 0xb4], 0
je 0x831885
cmp dword [esp + 0x1c], ebp
jne 0x831885
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007fbd70
mov edi, dword [esp + 0x14]
jmp 0x831dbf
mov cl, byte [ebp + 0x36]
test cl, cl
je 0x831871
mov edi, dword [esp + 0x14]
cmp cl, 0xb
mov al, 2
je 0x831899
mov eax, ecx
cmp byte [esp + 0xf], 0xb
je 0x8318a4
mov al, byte [esp + 0xf]
cmp dword [esp + 0x30], ebp
je 0x8318af
movzx eax, al
jmp 0x8318c0
mov ecx, dword [esp + 0x68]
xor eax, eax
cmp dword [ecx + 8], 0
setne al
lea eax, [eax + eax + 4]
test edi, edi
mov dword [esp + 0x6c], eax
jne 0x831934
cmp dword [esp + 0x1c], ebp
jne 0x831934
cmp eax, 5
jne 0x831934
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x831934
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x20]
test eax, 0x2000
je 0x831908
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0
push 0
push 0x7e
call fcn.0082cc40
add esp, 0xc
test eax, eax
jne 0x831934
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 0x20]
test eax, 0x4000
je 0x831924
mov eax, dword [esp]
cmp dword [eax + 0x10], 0
jne 0x831934
mov ecx, dword [esp]
call fcn.00811e30
test eax, eax
jne 0x831934
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007fbd70
jmp 0x831dbf
mov eax, dword [esp + 0xac]
mov ecx, ebx
mov edx, 0x1c
lea edi, [edi + eax]
movzx eax, word [ebp + 0x32]
push eax
mov eax, dword [esp + 0x14]
mov esi, eax
push eax
push dword [esp + 0x20]
mov dword [esp + 0x50], edi
push edi
call fcn.0078dfd0
add esp, 0x10
cmp dword [esp + 0x1c], ebp
mov dword [esp + 0x70], eax
mov eax, esi
je 0x83197b
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x58]
call fcn.007fa700
cmp dword [esp + 0xb4], 0
mov dword [esp + 0x24], eax
jne 0x831994
cmp dword [esp + 0x6c], 5
jne 0x831b24
mov eax, dword [esp]
cmp byte [eax + 0x24], 0
js 0x8319f7
mov ecx, dword [esp + 8]
mov edx, 0x86
push dword [esp + 0x24]
push dword [esp + 0x48]
call fcn.007d10d0
add esp, 8
cmp dword [esp + 0xb4], 0
je 0x831b24
mov esi, dword [esp + 8]
mov edx, 0x35
mov ecx, esi
push dword [esp + 0xb4]
push dword [esp + 0x1c]
push dword [esp + 0x2c]
call fcn.007d10f0
add esp, 0xc
mov ecx, esi
mov edx, 0x90
call fcn.0078e010
jmp 0x831b24
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x44]
cmp eax, ebp
mov dword [esp + 0x1c], eax
je 0x831a4b
xor esi, esi
cmp word [eax + 0x32], 0
je 0x831a4b
mov eax, dword [esp + 0x1c]
mov ecx, ebp
mov eax, dword [eax + 4]
movsx edx, word [eax + esi*2]
call fcn.007fc7b0
mov ecx, dword [esp + 0x24]
cwde
mov edx, 0x59
lea edi, [esi + ecx]
mov ecx, dword [esp + 8]
push edi
push eax
push ebx
call fcn.007d10f0
add esp, 0xc
mov eax, dword [esp + 0x1c]
inc esi
movzx eax, word [eax + 0x32]
cmp esi, eax
jb 0x831a10
cmp dword [esp + 0xb4], 0
je 0x831b24
mov edx, dword [ebp + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
and edx, 3
movzx esi, word [eax + 0x32]
cmp edx, 2
cmove ecx, dword [esp + 0x10]
test esi, esi
mov dword [esp + 0x74], ecx
je 0x831b24
mov ecx, dword [esp + 8]
call fcn.007fdcb0
mov ebx, eax
mov edi, 0x34
add ebx, esi
xor esi, esi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov eax, dword [ebx + 0x20]
mov edx, dword [eax + esi*4]
call fcn.007f7c10
mov dword [esp + 0x7c], eax
movzx eax, word [ebx + 0x32]
mov ecx, dword [esp]
dec eax
cmp esi, eax
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x28]
movsx edx, word [eax + esi*2]
cmove ebx, dword [esp + 0x18]
mov eax, 0x35
cmove edi, eax
call fcn.007f9520
mov ecx, dword [esp + 0x74]
cwde
mov edx, edi
add eax, dword [esp + 0x8c]
lea ecx, [esi + ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 8]
push 0xfffffffffffffffe
push dword [esp + 0x80]
push dword [esp + 0x30]
push ebx
push eax
call fcn.007f75d0
add esp, 0x14
mov ecx, dword [esp + 8]
mov edx, 0x90
call fcn.0078e010
mov eax, dword [esp + 0x1c]
inc esi
movzx eax, word [eax + 0x32]
cmp esi, eax
jb 0x831a93
mov edx, dword [esp + 0x6c]
mov eax, edx
dec al
cmp al, 3
jb 0x831f03
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x34]
cmp dl, 4
je 0x831b5f
cmp dl, 6
jne 0x831b72
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x68]
push dword [esp + 0x44]
push ebp
push dword [esp + 8]
call fcn.00832420
add esp, 0xc
mov edx, dword [esp + 0xc0]
mov ecx, ebx
call fcn.007f7790
jmp 0x831d70
mov ecx, ebx
call fcn.007fdcb0
cmp dword [esp + 0x64], 0
mov ebx, eax
je 0x831b8f
mov ecx, dword [esp + 4]
call fcn.008106b0
inc dword [esp + 0x3c]
cmp byte [esp + 0x4b], 0
je 0x831bd5
xor eax, eax
cmp dword [esp + 0x1c], ebp
movsx esi, word [esp + 0x58]
mov ecx, dword [esp + 4]
mov edx, dword [esp]
sete al
push dword [esp + 0x44]
push eax
push 5
push 0
push esi
push dword [esp + 0x38]
push dword [esp + 0xc4]
push dword [esp + 0xc4]
push dword [esp + 0x6c]
call fcn.0082d4f0
add esp, 0x24
jmp 0x831c42
xor eax, eax
cmp dword [esp + 0x1c], ebp
mov esi, dword [esp + 8]
mov edi, dword [esp + 0xa8]
mov edx, 0x9f
sete al
mov ecx, esi
mov dword [esp + 0x28], eax
push edi
call fcn.007f9600
add esp, 4
movsx eax, word [esp + 0x58]
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push dword [esp + 0x44]
push dword [esp + 0x2c]
push 5
push 0
push eax
push dword [esp + 0x38]
push dword [esp + 0xc4]
push edi
push dword [esp + 0x6c]
call fcn.0082d4f0
add esp, 0x24
mov ecx, esi
mov edx, 0xa0
push edi
mov edi, dword [esp + 0x38]
call fcn.007f9600
add esp, 4
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x40], 1
test eax, eax
jne 0x831c5f
mov ebx, dword [esp + 8]
jmp 0x831d70
mov esi, dword [esp + 8]
sub ebx, ecx
mov edx, 0x52
mov ecx, esi
push 1
push eax
call fcn.007d10d0
add esp, 8
mov ecx, esi
mov edx, 0xb
call fcn.007f75b0
mov ecx, esi
mov edx, edi
mov dword [esp + 0x44], eax
call fcn.007fbd70
mov ecx, dword [esp + 4]
call fcn.007fb640
cmp dword [ebp + 0x24], 0
mov edi, eax
je 0x831cb5
mov ecx, esi
mov edx, 0x32
push edi
push dword [esp + 0x7c]
call fcn.007d10d0
add esp, 8
mov esi, dword [esp + 0x70]
test ebx, ebx
mov dword [esp + 0x34], edi
jle 0x831d4f
mov ecx, dword [esp + 8]
mov edx, esi
call fcn.007f77c0
movzx edx, byte [eax]
cmp edx, 0x86
je 0x831d47
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x70], esi
movsx esi, byte [eax + 1]
test byte [edx + 0xb4cc11], 1
mov dword [esp + 0x78], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x74], esi
mov esi, edi
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x6c], ecx
movzx ecx, word [eax + 2]
mov dword [esp + 0x28], ecx
jne 0x831d12
mov esi, dword [eax + 8]
mov edi, dword [esp + 8]
mov ecx, edi
push dword [esp + 0x74]
push dword [esp + 0x7c]
push dword [esp + 0x74]
push esi
push dword [esp + 0x8c]
call fcn.007f75d0
add esp, 0x14
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.0078e010
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x70]
inc esi
dec ebx
jg 0x831cc5
mov ecx, dword [esp + 4]
mov edx, 2
push ebp
call fcn.00810820
add esp, 4
mov ebx, dword [esp + 8]
mov edx, dword [esp + 0x44]
mov ecx, ebx
call fcn.007f75c0
cmp dword [esp + 0x30], ebp
mov ecx, ebx
mov dword [esp + 0x34], edi
jne 0x831d98
mov edx, dword [esp + 0x84]
call fcn.007f7790
mov edx, dword [esp + 0x80]
mov ecx, ebx
call fcn.007f75c0
jmp 0x831da1
mov edx, dword [esp + 0x18]
call fcn.007fbd70
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
cmp edx, dword [esp + 0x10]
je 0x831dbf
mov ecx, dword [esp + 4]
push dword [esp + 0x58]
call fcn.007faa50
add esp, 4
mov eax, dword [esp + 0xa4]
mov ebp, dword [ebp + 0x14]
inc edi
test ebp, ebp
jne 0x8316b2
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
test edx, edx
je 0x831df3
mov ecx, ebx
call fcn.007f7790
mov edx, dword [esp + 0x88]
mov ecx, ebx
call fcn.007f75c0
cmp dword [esp + 0x3c], 0
mov edi, dword [esp + 0x50]
je 0x831e92
mov ecx, ebx
mov edx, 0x14
push dword [esp + 0x34]
push dword [esp + 0x68]
call fcn.007d10d0
add esp, 8
cmp dword [esp + 0x1c], 0
jne 0x831e7e
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0xb0]
test eax, eax
je 0x831e50
mov ecx, ebx
mov edx, 0x35
push eax
push edi
push esi
call fcn.007d10f0
add esp, 0xc
mov ecx, ebx
mov edx, 0x90
call fcn.0078e010
mov ecx, ebx
mov edx, 0x20
push esi
push edi
push dword [esp + 0xb0]
call fcn.007d10f0
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, 2
push dword [esp]
call fcn.00832150
add esp, 4
jmp 0x831e87
mov ecx, ebx
mov edx, edi
call fcn.007f7790
mov edx, dword [esp + 0x34]
mov ecx, ebx
call fcn.007fbd70
mov eax, dword [esp]
mov esi, dword [esp + 0xc4]
cmp byte [eax + 0x24], 0
js 0x831ef2
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp]
mov ebp, ebx
mov esi, dword [esp + 0x14]
mov edx, 0x5b
mov edi, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xa4]
movsx eax, word [eax + 0x2c]
inc edi
push dword [ebx + esi*4]
mov esi, dword [esp + 0xc8]
push eax
push edi
call fcn.007d10f0
mov edx, dword [esp + 0xc]
add esp, 0xc
cmp byte [esp + 0x54], 0
jne 0x831ef2
mov ecx, ebp
push 0
call fcn.008019d0
add esp, 4
mov eax, dword [esp + 0x40]
mov dword [esi], eax
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 4]
push ebp
call fcn.00810820
add esp, 4
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x34]
jmp 0x831d70