Function at 0x412750
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x18c
mov eax, dword [0x47b5b0]
xor eax, esp
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 8], eax
push ebp
push esi
push edi
mov edi, ecx
mov ecx, 3
mov word [esp + 0x74], cx
mov eax, 4
mov word [esp + 0x76], ax
mov ecx, 5
mov word [esp + 0x78], cx
mov eax, 6
mov word [esp + 0x7a], ax
mov ecx, 7
mov word [esp + 0x7c], cx
mov eax, 8
mov word [esp + 0x7e], ax
mov ecx, 9
mov word [esp + 0x80], cx
mov eax, 0xa
mov word [esp + 0x82], ax
mov ecx, 0xb
mov word [esp + 0x84], cx
mov eax, 0xd
mov word [esp + 0x86], ax
mov ecx, 0xf
mov word [esp + 0x88], cx
mov eax, 0x11
mov word [esp + 0x8a], ax
mov esi, dword [esp + 0x1a0]
mov ebp, dword [esp + 0x1a4]
mov ecx, 0x13
mov word [esp + 0x8c], cx
mov eax, 0x17
mov word [esp + 0x8e], ax
mov ecx, 0x1b
mov word [esp + 0x90], cx
mov eax, 0x1f
mov word [esp + 0x92], ax
mov ecx, 0x23
mov word [esp + 0x94], cx
mov eax, 0x2b
mov word [esp + 0x96], ax
mov ecx, 0x33
mov word [esp + 0x98], cx
mov eax, 0x3b
mov word [esp + 0x9a], ax
mov ecx, 0x43
mov word [esp + 0x9c], cx
mov eax, 0x53
mov word [esp + 0x9e], ax
mov ecx, 0x63
mov word [esp + 0xa0], cx
mov eax, 0x73
mov word [esp + 0xa2], ax
mov ecx, 0x83
mov word [esp + 0xa4], cx
mov eax, 0xa3
mov word [esp + 0xa6], ax
mov ecx, 0xc3
mov word [esp + 0xa8], cx
mov eax, 0xe3
mov word [esp + 0xaa], ax
mov ecx, 0x102
xor eax, eax
mov word [esp + 0xac], cx
xor ecx, ecx
mov word [esp + 0xae], ax
mov eax, 0x10
mov word [esp + 0xb0], cx
mov ecx, eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x50], edx
mov word [esp + 0xb4], ax
mov word [esp + 0xb6], cx
mov word [esp + 0xb8], ax
mov word [esp + 0xba], cx
mov word [esp + 0xbc], ax
mov word [esp + 0xbe], cx
mov word [esp + 0xc0], ax
mov word [esp + 0xc2], cx
mov eax, 0x11
mov ecx, eax
mov word [esp + 0xc4], ax
mov word [esp + 0xc8], ax
mov word [esp + 0xc6], cx
mov word [esp + 0xca], cx
mov eax, 0x12
mov ecx, eax
mov word [esp + 0xcc], ax
mov word [esp + 0xd0], ax
mov word [esp + 0xce], cx
mov word [esp + 0xd2], cx
mov eax, 0x13
mov ecx, eax
mov word [esp + 0xd4], ax
mov word [esp + 0xd8], ax
mov word [esp + 0xd6], cx
mov word [esp + 0xda], cx
mov eax, 0x14
mov ecx, eax
mov word [esp + 0xdc], ax
mov word [esp + 0xe0], ax
mov word [esp + 0xde], cx
mov word [esp + 0xe2], cx
mov eax, 0x15
mov ecx, eax
mov word [esp + 0xe4], ax
mov word [esp + 0xe8], ax
mov word [esp + 0xe6], cx
mov word [esp + 0xea], cx
mov eax, 0x10
mov word [esp + 0xec], ax
mov ecx, 0xc9
mov word [esp + 0xee], cx
mov eax, 0xc4
mov word [esp + 0xf0], ax
mov ecx, 1
mov word [esp + 0x134], cx
mov eax, 2
mov word [esp + 0x136], ax
mov ecx, 3
mov word [esp + 0x138], cx
mov eax, 4
mov word [esp + 0x13a], ax
mov ecx, 5
mov word [esp + 0x13c], cx
mov eax, 7
mov word [esp + 0x13e], ax
mov ecx, 9
mov word [esp + 0x140], cx
mov eax, 0xd
mov word [esp + 0x142], ax
mov ecx, 0x11
mov word [esp + 0x144], cx
mov eax, 0x19
mov word [esp + 0x146], ax
mov ecx, 0x21
mov word [esp + 0x148], cx
mov eax, 0x31
mov word [esp + 0x14a], ax
mov ecx, 0x41
mov word [esp + 0x14c], cx
mov eax, 0x61
mov word [esp + 0x14e], ax
mov ecx, 0x81
mov word [esp + 0x150], cx
mov eax, 0xc1
mov word [esp + 0x152], ax
mov ecx, 0x101
mov word [esp + 0x154], cx
mov eax, 0x181
mov ecx, 0x201
mov word [esp + 0x156], ax
mov eax, 0x301
mov word [esp + 0x158], cx
mov ecx, 0x401
mov word [esp + 0x15a], ax
mov word [esp + 0x15c], cx
mov eax, 0x601
mov word [esp + 0x15e], ax
mov ecx, 0x801
mov word [esp + 0x160], cx
mov eax, 0xc01
mov word [esp + 0x162], ax
mov ecx, 0x1001
mov word [esp + 0x164], cx
mov eax, 0x1801
mov word [esp + 0x166], ax
mov ecx, 0x2001
mov word [esp + 0x168], cx
mov eax, 0x3001
mov word [esp + 0x16a], ax
mov ecx, 0x4001
mov word [esp + 0x16c], cx
xor ecx, ecx
mov word [esp + 0x170], cx
mov eax, 0x6001
mov word [esp + 0x16e], ax
xor eax, eax
mov word [esp + 0x172], ax
mov ecx, 0x10
mov eax, ecx
mov word [esp + 0xf4], cx
mov word [esp + 0xf8], cx
mov word [esp + 0xf6], ax
mov word [esp + 0xfa], ax
mov ecx, 0x11
mov eax, ecx
mov word [esp + 0xfc], cx
mov word [esp + 0xfe], ax
mov ecx, 0x12
mov eax, ecx
mov word [esp + 0x100], cx
mov word [esp + 0x102], ax
mov ecx, 0x13
mov eax, ecx
mov word [esp + 0x104], cx
mov word [esp + 0x106], ax
mov ecx, 0x14
mov eax, ecx
mov word [esp + 0x108], cx
mov word [esp + 0x10a], ax
mov ecx, 0x15
mov eax, ecx
mov word [esp + 0x10c], cx
mov word [esp + 0x10e], ax
mov ecx, 0x16
mov eax, ecx
mov word [esp + 0x110], cx
mov word [esp + 0x112], ax
mov ecx, 0x17
mov eax, ecx
mov word [esp + 0x114], cx
mov word [esp + 0x116], ax
mov ecx, 0x18
mov eax, ecx
mov word [esp + 0x118], cx
mov word [esp + 0x11a], ax
mov ecx, 0x19
mov eax, ecx
mov word [esp + 0x11c], cx
mov word [esp + 0x11e], ax
mov ecx, 0x1a
mov eax, ecx
mov word [esp + 0x120], cx
mov ecx, 0x1b
mov word [esp + 0x122], ax
mov eax, ecx
mov word [esp + 0x124], cx
mov ecx, 0x1c
mov word [esp + 0x126], ax
mov eax, ecx
mov word [esp + 0x128], cx
mov ecx, 0x1d
mov word [esp + 0x12a], ax
mov eax, ecx
mov word [esp + 0x12c], cx
mov ecx, 0x40
mov word [esp + 0x12e], ax
mov word [esp + 0x130], cx
mov eax, ecx
mov word [esp + 0x132], ax
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
test edi, edi
jbe 0x412d82
jmp 0x412d70
movzx eax, word [esi + ecx*2]
inc word [esp + eax*2 + 0x54]
lea eax, [esp + eax*2 + 0x54]
inc ecx
cmp ecx, edi
jb 0x412d70
mov ecx, dword [edx]
mov dword [esp + 0x10], ecx
mov eax, 0xf
lea ecx, [ecx]
cmp word [esp + eax*2 + 0x54], 0
jne 0x412d9e
dec eax
cmp eax, 1
jae 0x412d90
mov dword [esp + 0x18], eax
cmp ecx, eax
jbe 0x412dac
mov dword [esp + 0x10], eax
mov ecx, eax
test eax, eax
jne 0x412df7
xor ecx, ecx
mov word [esp + 0xe], cx
mov ecx, dword [ebp]
mov byte [esp + 0xc], 0x40
mov byte [esp + 0xd], 1
mov eax, dword [esp + 0xc]
mov dword [ecx], eax
add dword [ebp], 4
mov ecx, dword [ebp]
pop edi
mov dword [ecx], eax
add dword [ebp], 4
pop esi
mov dword [edx], 1
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x188]
xor ecx, esp
call fcn.00431fec
add esp, 0x18c
ret
push ebx
mov ebx, 1
lea ecx, [ecx]
cmp word [esp + ebx*2 + 0x58], 0
jne 0x412e42
cmp word [esp + ebx*2 + 0x5a], 0
jne 0x412e32
cmp word [esp + ebx*2 + 0x5c], 0
jne 0x412e35
cmp word [esp + ebx*2 + 0x5e], 0
jne 0x412e3a
cmp word [esp + ebx*2 + 0x60], 0
jne 0x412e3f
add ebx, 5
cmp ebx, 0xf
jbe 0x412e00
jmp 0x412e42
inc ebx
jmp 0x412e42
add ebx, 2
jmp 0x412e42
add ebx, 3
jmp 0x412e42
add ebx, 4
cmp ecx, ebx
jae 0x412e4a
mov dword [esp + 0x14], ebx
mov ecx, 1
mov eax, ecx
movzx edx, word [esp + eax*2 + 0x58]
add ecx, ecx
sub ecx, edx
js 0x412e77
inc eax
cmp eax, 0xf
jbe 0x412e51
test ecx, ecx
jle 0x412e7f
cmp dword [esp + 0x1a0], 0
je 0x412e77
cmp dword [esp + 0x1c], 1
je 0x412e7f
or eax, 0xffffffff
jmp 0x4131d6
xor edx, edx
mov word [esp + 0x17a], dx
mov eax, 2
mov edi, edi
mov cx, word [esp + eax + 0x178]
add cx, word [esp + eax + 0x58]
add eax, 2
mov word [esp + eax + 0x178], cx
cmp eax, 0x1e
jb 0x412e90
mov edx, dword [esp + 0x18]
xor ecx, ecx
test edi, edi
jbe 0x412ee6
cmp word [esi + ecx*2], 0
je 0x412ee1
movzx eax, word [esi + ecx*2]
movzx eax, word [esp + eax*2 + 0x178]
mov word [edx + eax*2], cx
movzx eax, word [esi + ecx*2]
inc word [esp + eax*2 + 0x178]
lea eax, [esp + eax*2 + 0x178]
inc ecx
cmp ecx, edi
jb 0x412eb7
mov eax, dword [esp + 0x1a0]
sub eax, 0
mov ecx, 0xffffffff
je 0x412f3b
sub eax, 1
je 0x412f14
lea eax, [esp + 0xf8]
lea edx, [esp + 0x138]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ecx
jmp 0x412f47
lea eax, [esp + 0x78]
sub eax, 0x202
mov dword [esp + 0x38], eax
lea eax, [esp + 0xb8]
sub eax, 0x202
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], 0x100
jmp 0x412f4b
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], 0x13
mov dword [esp + 0x38], edx
mov edx, dword [ebp]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x14]
mov edx, 1
shl edx, cl
xor eax, eax
cmp dword [esp + 0x1a0], 1
mov dword [esp + 0x24], eax
mov ebp, edx
lea ecx, [edx - 1]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], ecx
jne 0x412f8e
cmp edx, 0x5b0
jae 0x4131d1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x18], edx
jmp 0x412fa4
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
mov cl, bl
sub cl, al
mov byte [esp + 0x11], cl
movzx ecx, word [esi]
movzx edx, cx
cmp edx, edi
jge 0x412fca
mov byte [esp + 0x10], 0
mov word [esp + 0x12], cx
jmp 0x412ff7
jle 0x412feb
movzx esi, word [esi]
mov edx, dword [esp + 0x3c]
add esi, esi
mov cl, byte [esi + edx]
mov edx, dword [esp + 0x38]
mov byte [esp + 0x10], cl
mov cx, word [esi + edx]
mov word [esp + 0x12], cx
jmp 0x412ff7
xor edx, edx
mov byte [esp + 0x10], 0x60
mov word [esp + 0x12], dx
mov ecx, ebx
sub ecx, eax
mov edx, ebp
mov ebp, dword [esp + 0x24]
mov esi, 1
shl esi, cl
mov ecx, eax
shr ebp, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], edx
lea edi, [esi*4]
add ebp, edx
lea ecx, [ecx + ebp*4]
mov ebp, dword [esp + 0x10]
sub edx, esi
sub ecx, edi
mov dword [ecx], ebp
test edx, edx
jne 0x413024
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x24]
test ecx, edx
je 0x413046
shr edx, 1
test ecx, edx
jne 0x413040
test edx, edx
je 0x413053
lea esi, [edx - 1]
and esi, ecx
add esi, edx
jmp 0x413055
xor esi, esi
add dword [esp + 0x18], 2
mov edx, 0xffff
add word [esp + ebx*2 + 0x58], dx
movzx ecx, word [esp + ebx*2 + 0x58]
mov dword [esp + 0x24], esi
test cx, cx
jne 0x41308b
cmp ebx, dword [esp + 0x1c]
je 0x413147
mov ecx, dword [esp + 0x18]
movzx edx, word [ecx]
mov ecx, dword [esp + 0x50]
movzx ebx, word [ecx + edx*2]
cmp ebx, dword [esp + 0x14]
jbe 0x412fa0
mov edi, dword [esp + 0x44]
and edi, esi
mov dword [esp + 0x4c], edi
cmp edi, dword [esp + 0x30]
je 0x412fa0
test eax, eax
jne 0x4130b1
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
lea edx, [edx + ecx*4]
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x20], edx
mov edx, 1
lea esi, [eax + ecx]
shl edx, cl
cmp esi, dword [esp + 0x1c]
jae 0x4130f2
lea edi, [esp + esi*2 + 0x58]
movzx ebp, word [edi]
sub edx, ebp
test edx, edx
jle 0x4130ee
inc esi
inc ecx
add edi, 2
add edx, edx
cmp esi, dword [esp + 0x1c]
jb 0x4130d8
mov edi, dword [esp + 0x4c]
mov ebp, 1
shl ebp, cl
add dword [esp + 0x28], ebp
cmp dword [esp + 0x1a0], 1
mov dword [esp + 0x40], ebp
jne 0x413119
cmp dword [esp + 0x28], 0x5b0
jae 0x4131d1
mov esi, edi
mov edi, dword [esp + 0x2c]
mov edx, dword [edi]
mov byte [edx + esi*4], cl
mov ecx, dword [edi]
mov dl, byte [esp + 0x14]
mov byte [ecx + esi*4 + 1], dl
mov edi, dword [edi]
mov ecx, dword [esp + 0x20]
sub ecx, edi
sar ecx, 2
mov dword [esp + 0x30], esi
mov word [edi + esi*4 + 2], cx
jmp 0x412fa4
mov ebp, dword [esp + 0x2c]
mov dl, bl
sub dl, al
xor ecx, ecx
mov byte [esp + 0x10], 0x40
mov byte [esp + 0x11], dl
mov word [esp + 0x12], cx
test esi, esi
je 0x4131b5
mov edi, dword [esp + 0x20]
test eax, eax
je 0x413184
mov edx, dword [esp + 0x44]
and edx, esi
cmp edx, dword [esp + 0x30]
je 0x413184
mov ebx, dword [esp + 0x14]
mov edi, dword [ebp]
xor eax, eax
mov byte [esp + 0x11], bl
mov ecx, eax
mov edx, esi
shr edx, cl
mov ecx, dword [esp + 0x10]
mov dword [edi + edx*4], ecx
lea ecx, [ebx - 1]
mov edx, 1
shl edx, cl
test esi, edx
je 0x4131a6
nop
shr edx, 1
test esi, edx
jne 0x4131a0
test edx, edx
je 0x4131b5
lea ecx, [edx - 1]
and ecx, esi
add ecx, edx
mov esi, ecx
jne 0x413167
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea eax, [edx*4]
add dword [ebp], eax
mov edx, dword [esp + 0x54]
mov dword [edx], ecx
xor eax, eax
jmp 0x4131d6
mov eax, 1
mov ecx, dword [esp + 0x198]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.00431fec
add esp, 0x18c
ret