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

Disassembly:
push ebp
xor edx, edx
xor eax, eax
push edi
push esi
push ebx
sub esp, 0x88
mov edi, dword [esp + 0xa4]
mov dword [esp + eax + 0x48], edx
add eax, 4
cmp eax, 0x20
jb 0x416765
mov eax, dword [esp + 0xa0]
lea ecx, [eax + edi*2]
test edi, edi
je 0x416790
nop
movzx edx, word [eax]
add eax, 2
add word [esp + edx*2 + 0x48], 1
cmp eax, ecx
jne 0x416780
mov eax, dword [esp + 0xac]
movzx esi, word [esp + 0x66]
mov eax, dword [eax]
mov word [esp], si
test si, si
jne 0x416899
cmp word [esp + 0x64], 0
jne 0x417174
cmp word [esp + 0x62], 0
jne 0x4171bf
cmp word [esp + 0x60], 0
jne 0x4171e3
cmp word [esp + 0x5e], 0
jne 0x41722b
cmp word [esp + 0x5c], 0
jne 0x417207
cmp word [esp + 0x5a], 0
jne 0x41724f
cmp word [esp + 0x58], 0
jne 0x417273
cmp word [esp + 0x56], 0
jne 0x417297
cmp word [esp + 0x54], 0
jne 0x4172f6
cmp word [esp + 0x52], 0
jne 0x41731a
cmp word [esp + 0x50], 0
jne 0x417352
cmp word [esp + 0x4e], 0
jne 0x417376
cmp word [esp + 0x4c], 0
jne 0x41739a
cmp word [esp + 0x4a], 0
jne 0x4173c6
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x20], 1
mov eax, dword [eax]
lea edx, [eax + 8]
mov dword [eax], 0x140
mov dword [edi], edx
mov dword [eax + 4], 0x140
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0x20]
xor edx, edx
mov dword [eax], edi
add esp, 0x88
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 0xf
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x41753f
mov ebp, 0xf
lea esi, [esi]
nop
cmp word [esp + 0x4c], 0
jne 0x4172d8
cmp ebp, 3
je 0x417345
cmp word [esp + 0x4e], 0
jne 0x41733e
cmp ebp, 4
je 0x4173ec
cmp word [esp + 0x50], 0
jne 0x4173e2
cmp ebp, 5
je 0x417403
cmp word [esp + 0x52], 0
jne 0x4173f9
cmp ebp, 6
je 0x417410
cmp word [esp + 0x54], 0
jne 0x41741d
cmp ebp, 7
je 0x417431
cmp word [esp + 0x56], 0
jne 0x417427
cmp ebp, 8
je 0x41743e
cmp word [esp + 0x58], 0
jne 0x41744b
cmp ebp, 9
je 0x41745f
cmp word [esp + 0x5a], 0
jne 0x417455
cmp ebp, 0xa
je 0x41746c
cmp word [esp + 0x5c], 0
jne 0x417479
cmp ebp, 0xb
je 0x41748d
cmp word [esp + 0x5e], 0
jne 0x417483
cmp ebp, 0xc
je 0x4174b1
cmp word [esp + 0x60], 0
jne 0x4174a7
cmp ebp, 0xd
je 0x41749a
cmp word [esp + 0x62], 0
jne 0x4174be
cmp ebp, 0xf
jne 0x4174d2
cmp word [esp + 0x64], 0
jne 0x4174c8
mov dword [esp + 0x24], 0xf
movzx edx, word [esp + 0x4a]
mov eax, 2
mov ecx, edx
sub eax, edx
movzx ebx, word [esp + 0x4c]
add eax, eax
mov edx, ebx
sub eax, ebx
js 0x416c60
movzx esi, word [esp + 0x4e]
add eax, eax
mov ebx, esi
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x50]
add eax, eax
mov word [esp + 4], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x52]
add eax, eax
mov word [esp + 0xe], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x54]
add eax, eax
mov word [esp + 0x10], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x56]
add eax, eax
mov word [esp + 0x44], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x58]
add eax, eax
mov word [esp + 0x14], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x5a]
add eax, eax
mov word [esp + 0x18], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x5c]
add eax, eax
mov word [esp + 0x1c], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x5e]
add eax, eax
mov word [esp + 0x20], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x60]
add eax, eax
mov word [esp + 0x28], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x62]
add eax, eax
mov word [esp + 0x2c], si
sub eax, esi
js 0x416c60
movzx esi, word [esp + 0x64]
add eax, eax
mov word [esp + 0x30], si
sub eax, esi
js 0x416c60
movzx esi, word [esp]
add eax, eax
cmp eax, esi
js 0x416c60
je 0x416b06
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x416c60
cmp dword [esp + 0x24], 1
jne 0x416c60
add edx, ecx
xor esi, esi
mov word [esp + 0x6c], cx
xor eax, eax
mov word [esp + 0x6e], dx
add edx, ebx
mov word [esp + 0x70], dx
add dx, word [esp + 4]
mov word [esp + 0x72], dx
add dx, word [esp + 0xe]
mov word [esp + 0x74], dx
add dx, word [esp + 0x10]
mov word [esp + 0x76], dx
add dx, word [esp + 0x44]
mov word [esp + 0x78], dx
add dx, word [esp + 0x14]
mov word [esp + 0x7a], dx
add dx, word [esp + 0x18]
mov word [esp + 0x7c], dx
add dx, word [esp + 0x1c]
mov word [esp + 0x7e], dx
add dx, word [esp + 0x20]
mov word [esp + 0x80], dx
add dx, word [esp + 0x28]
mov word [esp + 0x82], dx
add dx, word [esp + 0x2c]
mov word [esp + 0x84], dx
add dx, word [esp + 0x30]
mov word [esp + 0x6a], si
mov word [esp + 0x86], dx
test edi, edi
je 0x416bdd
mov dword [esp], ebp
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xb0]
lea esi, [esi]
movzx edx, word [ebx + eax*2]
test dx, dx
je 0x416bd3
movzx ecx, word [esp + edx*2 + 0x68]
lea esi, [ecx + 1]
mov word [ebp + ecx*2], ax
mov word [esp + edx*2 + 0x68], si
add eax, 1
cmp edi, eax
jne 0x416bb8
mov ebp, dword [esp]
mov ebx, dword [esp + 8]
mov eax, 1
cmp ebp, ebx
cmovae ebx, ebp
mov ecx, ebx
mov dword [esp + 0x20], ebx
shl eax, cl
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa8]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x416ca0
cmp dword [esp + 0x9c], 1
je 0x416c72
cmp dword [esp + 0x9c], 2
sete byte [esp + 0x46]
cmp dword [esp + 0x2c], 0x250
movzx eax, byte [esp + 0x46]
jbe 0x4172bb
test al, al
je 0x4172bb
add esp, 0x88
mov edx, 1
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
add esp, 0x88
mov edx, 0xffffffff
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x2c], 0x354
ja 0x416c45
mov dword [esp + 0x40], 0x518a80
mov dword [esp + 0x3c], 0x518a40
mov dword [esp + 0x28], 0x101
mov byte [esp + 0x46], 0
jmp 0x416cbc
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x28], 0x14
mov byte [esp + 0x46], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x9c], 1
mov dword [esp + 0x30], 0xffffffff
sete byte [esp + 0x47]
xor edi, edi
sub eax, 1
mov dword [esp + 4], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
lea esi, [esi]
mov eax, ebp
sub al, byte [esp + 4]
mov ebx, dword [esp + 0x28]
mov byte [esp + 0xe], 0
mov byte [esp + 0x44], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
lea edx, [eax + 1]
mov esi, eax
cmp edx, ebx
jb 0x416d49
cmp eax, ebx
jb 0x416e50
sub eax, ebx
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
movzx ebx, byte [ebx + eax*2]
movzx esi, word [esi + eax*2]
mov byte [esp + 0xe], bl
mov ebx, dword [esp + 4]
mov eax, ebp
mov edx, 1
mov dword [esp + 0x18], edi
sub eax, ebx
mov ebx, 0xfffffffc
mov ecx, eax
mov dword [esp + 0x14], eax
mov eax, 1
shl edx, cl
movzx ecx, byte [esp + 8]
shl eax, cl
movzx ecx, byte [esp + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp], eax
mov eax, edi
movzx edi, byte [esp + 0x44]
shl ebx, cl
movzx ecx, byte [esp + 4]
mov ebp, ebx
movzx ebx, byte [esp + 0xe]
shr eax, cl
mov ecx, eax
mov eax, dword [esp]
add ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, edx
lea ecx, [eax + ecx*4]
lea esi, [esi]
lea esi, [esi]
mov eax, edi
mov byte [ecx], bl
mov byte [ecx + 1], al
mov word [ecx + 2], si
add ecx, ebp
sub dword [esp], edx
jne 0x416db0
mov ebp, dword [esp + 0x14]
mov eax, 1
mov edi, dword [esp + 0x18]
lea ecx, [ebp - 1]
shl eax, cl
test edi, eax
je 0x416e40
lea esi, [esi]
nop
shr eax, 1
test edi, eax
jne 0x416de0
test eax, eax
jne 0x416e40
sub word [esp + ebp*2 + 0x48], 1
jne 0x416e11
mov edi, dword [esp + 0x24]
cmp ebp, edi
je 0x417136
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xa0]
movzx edx, word [edi + 2]
movzx ebp, word [esi + edx*2]
mov ebx, dword [esp + 0x20]
cmp ebx, ebp
jae 0x416e2a
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
and edi, eax
mov dword [esp], edi
cmp edi, esi
jne 0x416e60
add dword [esp + 0x10], 2
mov edi, eax
jmp 0x416d08
lea edx, [eax - 1]
and edx, edi
add eax, edx
jmp 0x416dea
mov byte [esp + 0xe], 0x60
xor esi, esi
jmp 0x416d49
mov esi, dword [esp + 4]
movzx ecx, byte [esp + 8]
mov edx, 4
mov edi, dword [esp + 0x24]
test esi, esi
cmove esi, ebx
mov ebx, ebp
shl edx, cl
add dword [esp + 0x1c], edx
mov edx, 1
sub ebx, esi
mov dword [esp + 4], esi
mov ecx, ebx
mov dword [esp + 8], ebx
shl edx, cl
cmp ebp, edi
jae 0x4170c0
movzx ecx, word [esp + ebp*2 + 0x48]
sub edx, ecx
test edx, edx
jle 0x4170c0
lea ecx, [ebx + 1]
add edx, edx
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 2]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 3]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 4]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 5]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 6]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 7]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 8]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 9]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 0xa]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
lea ecx, [ebx + 0xb]
lea ebx, [esi + ecx]
cmp ebx, edi
jae 0x417130
movzx ebx, word [esp + ebx*2 + 0x48]
sub edx, ebx
test edx, edx
jle 0x417130
mov ebx, dword [esp + 8]
add edx, edx
add ebx, 0xc
lea ecx, [esi + ebx]
cmp ecx, edi
jae 0x41716b
movzx ecx, word [esp + ecx*2 + 0x48]
sub edx, ecx
test edx, edx
jle 0x41716b
mov ebx, dword [esp + 8]
add edx, edx
add ebx, 0xd
lea ecx, [esi + ebx]
cmp ecx, edi
jae 0x41716b
movzx ecx, word [esp + ecx*2 + 0x48]
sub edx, ecx
test edx, edx
jle 0x41716b
mov ebx, dword [esp + 8]
add edx, edx
add ebx, 0xe
lea ecx, [esi + ebx]
cmp ecx, edi
jae 0x41716b
movzx ecx, word [esp + ecx*2 + 0x48]
sub edx, ecx
test edx, edx
jle 0x41716b
mov ebx, dword [esp + 8]
lea esi, [edx + edx]
lea ecx, [ebx + 0xf]
mov ebx, dword [esp + 4]
lea edx, [ebx + ecx]
cmp edx, edi
jae 0x417130
mov ebx, dword [esp + 8]
movzx edx, word [esp + edx*2 + 0x48]
add ebx, 0x10
cmp esi, edx
cmovg ecx, ebx
mov dword [esp + 8], ecx
lea esi, [esi]
movzx ecx, byte [esp + 8]
mov edx, 1
shl edx, cl
add dword [esp + 0x2c], edx
mov edi, dword [esp + 0x2c]
cmp edi, 0x354
jbe 0x4170e7
cmp byte [esp + 0x47], 0
jne 0x416c45
cmp dword [esp + 0x2c], 0x250
jbe 0x4170fc
cmp byte [esp + 0x46], 0
jne 0x416c45
mov edi, dword [esp + 0x38]
mov esi, dword [esp]
movzx ebx, byte [esp + 8]
mov ecx, dword [esp + 0x1c]
lea edx, [edi + esi*4]
mov dword [esp + 0x30], esi
mov byte [edx], bl
sub ecx, edi
movzx ebx, byte [esp + 0x20]
sar ecx, 2
mov byte [edx + 1], bl
mov word [edx + 2], cx
jmp 0x416e2a
mov dword [esp + 8], ecx
jmp 0x4170c0
test eax, eax
je 0x417152
mov edi, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x44]
xor edx, edx
lea eax, [edi + eax*4]
mov byte [eax], 0x40
mov byte [eax + 1], bl
mov word [eax + 2], dx
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
lea eax, [eax + edi*4]
mov edi, dword [esp + 0xa8]
mov dword [edi], eax
jmp 0x41687d
mov dword [esp + 8], ebx
jmp 0x4170c0
mov edx, 0xe
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417194
mov ebp, 0xe
jmp 0x4168c0
mov dword [esp + 0x24], 0xe
movzx ebx, word [esp + 0x4a]
mov eax, 2
mov edx, 0xffffffff
mov ecx, ebx
sub eax, ebx
js 0x41688c
mov ebp, 1
jmp 0x4169de
mov edx, 0xd
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x4174f1
mov ebp, 0xd
jmp 0x4168c0
mov edx, 0xc
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x41750b
mov ebp, 0xc
jmp 0x4168c0
mov edx, 0xa
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x4174fe
mov ebp, 0xa
jmp 0x4168c0
mov edx, 0xb
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417518
mov ebp, 0xb
jmp 0x4168c0
mov edx, 9
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417525
mov ebp, 9
jmp 0x4168c0
mov edx, 8
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417532
mov ebp, 8
jmp 0x4168c0
mov edx, 7
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x4174e4
mov ebp, 7
jmp 0x4168c0
mov dword [esp + 0x40], 0x518a00
mov dword [esp + 0x3c], 0x5189c0
mov dword [esp + 0x28], 0
jmp 0x416cbc
mov edx, 2
movzx ebx, word [esp + 0x4a]
mov eax, 2
mov dword [esp + 0x24], ebp
mov ebp, edx
mov ecx, ebx
sub eax, ebx
jmp 0x4169de
mov edx, 6
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x41754c
mov ebp, 6
jmp 0x4168c0
mov edx, 5
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417566
mov ebp, 5
jmp 0x4168c0
mov edx, 3
jmp 0x4172dd
mov dword [esp + 0x24], 3
jmp 0x4169d0
mov edx, 4
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417573
mov ebp, 4
jmp 0x4168c0
mov edx, 3
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x417559
mov ebp, 3
jmp 0x4168c0
mov edx, 2
mov dword [esp + 0x24], 2
cmp eax, edx
cmovbe edx, eax
cmp word [esp + 0x4a], 0
mov dword [esp + 8], edx
jne 0x41719c
mov ebp, 2
jmp 0x4169d0
cmp eax, 0
mov edx, 1
mov dword [esp + 0x24], 1
cmovbe edx, eax
mov dword [esp + 8], edx
jmp 0x41719c
mov edx, 4
jmp 0x4172dd
mov dword [esp + 0x24], 4
jmp 0x4169d0
mov edx, 5
jmp 0x4172dd
mov dword [esp + 0x24], 5
jmp 0x4169d0
mov dword [esp + 0x24], 6
jmp 0x4169d0
mov edx, 6
jmp 0x4172dd
mov edx, 7
jmp 0x4172dd
mov dword [esp + 0x24], 7
jmp 0x4169d0
mov dword [esp + 0x24], 8
jmp 0x4169d0
mov edx, 8
jmp 0x4172dd
mov edx, 9
jmp 0x4172dd
mov dword [esp + 0x24], 9
jmp 0x4169d0
mov dword [esp + 0x24], 0xa
jmp 0x4169d0
mov edx, 0xa
jmp 0x4172dd
mov edx, 0xb
jmp 0x4172dd
mov dword [esp + 0x24], 0xb
jmp 0x4169d0
mov dword [esp + 0x24], 0xd
jmp 0x4169d0
mov edx, 0xc
jmp 0x4172dd
mov dword [esp + 0x24], 0xc
jmp 0x4169d0
mov edx, 0xd
jmp 0x4172dd
mov edx, 0xe
jmp 0x4172dd
mov dword [esp + 0x24], 0xe
mov ebp, 0xe
jmp 0x4169d0
mov dword [esp + 0x24], 7
jmp 0x41719c
mov dword [esp + 0x24], 0xd
jmp 0x41719c
mov dword [esp + 0x24], 0xa
jmp 0x41719c
mov dword [esp + 0x24], 0xc
jmp 0x41719c
mov dword [esp + 0x24], 0xb
jmp 0x41719c
mov dword [esp + 0x24], 9
jmp 0x41719c
mov dword [esp + 0x24], 8
jmp 0x41719c
mov dword [esp + 0x24], 0xf
jmp 0x41719c
mov dword [esp + 0x24], 6
jmp 0x41719c
mov dword [esp + 0x24], 3
jmp 0x41719c
mov dword [esp + 0x24], 5
jmp 0x41719c
mov dword [esp + 0x24], 4
jmp 0x41719c