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

Disassembly:
sub esp, 0x6c
mov eax, dword [0x519bc0]
xor eax, esp
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x88]
push ebx
mov ebx, dword [esp + 0x80]
push ebp
push esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x84]
mov esi, dword [eax]
mov dword [esp + 0x30], esi
mov esi, dword [ecx]
mov dword [eax], 0
push edi
mov edi, dword [esp + 0x80]
mov dword [ecx], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], esi
mov dword [edx], 0
jmp case.0x4162e6.6
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov ebp, dword [esp + 0x30]
mov eax, dword [edi]
sub ebp, ecx
cmp eax, 6
jne 0x4162d3
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
sub eax, dword [ecx]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], eax
test ebp, ebp
jne 0x416145
test eax, eax
je 0x41675b
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x94]
mov ebp, dword [esp + 0x24]
push edx
push eax
push 0
lea ecx, [esp + 0x34]
push ecx
push ebx
lea edx, [esp + 0x40]
push edx
push ebp
lea eax, [edi + 0x58]
push eax
call fcn.004148a0
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x190]
sub eax, 1
je 0x4161bd
sub eax, 3
je 0x41619a
sub eax, 6
jne 0x4161d1
push esi
push ebp
lea ecx, [edi + 0x1a0]
push ecx
call fcn.00468bf0
jmp 0x4161d1
mov edx, dword [edi + 0x19c]
mov eax, dword [edi + 0x198]
push esi
push ebp
push edx
push eax
call fcn.00414530
mov dword [edi + 0x198], eax
mov dword [edi + 0x19c], edx
jmp 0x4161d1
mov ecx, dword [edi + 0x194]
push esi
push ebp
push ecx
call fcn.0043ab30
mov dword [edi + 0x194], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
add dword [ecx], eax
mov ecx, dword [esp + 0x20]
add ebx, eax
add dword [edi + 0x18], eax
mov edx, 0
adc dword [edi + 0x1c], edx
add dword [ecx], esi
mov ecx, dword [esp + 0x1c]
add ebp, esi
add dword [edi + 0x20], esi
mov dword [esp + 0x24], ebp
adc dword [edi + 0x24], edx
cmp ecx, edx
jne 0x41677c
mov ecx, dword [esp + 0x18]
cmp dword [ecx], 1
jne 0x4162ac
movzx eax, word [edi + 0x10]
and eax, 0xf
je 0x416234
lea ecx, [eax - 1]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, 4
shl edx, cl
mov eax, dword [edi + 0x14]
xor ecx, ecx
xor esi, esi
add eax, edx
adc ecx, esi
add eax, dword [edi + 0x18]
adc ecx, dword [edi + 0x1c]
mov dl, al
shrd eax, ecx, 7
or dl, 0x80
mov byte [esp + esi + 0x38], dl
shr ecx, 7
mov edx, eax
inc esi
or edx, ecx
jne 0x416245
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x20]
and byte [esp + esi + 0x37], 0x7f
push eax
push ecx
lea edx, [esp + esi + 0x40]
push edx
call fcn.00414af0
mov ebp, eax
add ebp, esi
push ebp
lea eax, [esp + 0x3c]
push eax
lea ecx, [edi + 0x210]
push ecx
call fcn.00468bf0
add dword [edi + 0x30], ebp
mov eax, 0
mov dword [edi], 7
adc dword [edi + 0x34], eax
add dword [edi + 0x28], 1
mov dword [edi + 4], eax
mov dword [edi + 8], eax
adc dword [edi + 0x2c], eax
jmp case.0x4162e6.6
cmp eax, edx
jne case.0x4162e6.6
test esi, esi
jne case.0x4162e6.6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
xor esi, esi
cmp ebp, esi
je 0x416793
cmp eax, 7
ja case.0x4162e6.6
jmp dword [eax*4 + 0x4167d0]
mov ebp, dword [edi + 4]
cmp ebp, 0xc
jae 0x41631c
cmp ebp, 6
jae 0x416308
mov al, byte [ebx]
cmp al, byte [ebp + 0x516b3c]
jne 0x4167b4
mov cl, byte [ebx]
mov byte [edi + ebp + 0x2a0], cl
inc dword [edi + 4]
inc ebx
inc dword [edx]
jmp case.0x4162e6.6
lea edx, [edi + 0x2a0]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00415550
cmp eax, esi
jne 0x4167b9
lea ecx, [edi + 0x210]
push ecx
mov dword [edi], 5
call fcn.00468740
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
mov dword [edi + 4], esi
jmp case.0x4162e6.6
mov ecx, dword [edi + 4]
cmp ecx, esi
jne 0x4163e0
mov dl, byte [ebx]
mov eax, dword [esp + 0x14]
lea esi, [edi + 0x2a0]
mov byte [esi], dl
inc dword [edi + 4]
inc dword [eax]
inc ebx
cmp byte [esi], 0
jne 0x4163ce
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
push eax
push ecx
lea edx, [edi + 0x2a1]
push edx
call fcn.00414af0
inc eax
xor ecx, ecx
add dword [edi + 0x30], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x38], eax
adc dword [edi + 0x34], ecx
lea eax, [edi + 0x280]
push eax
lea ebp, [edi + 0x210]
push ebp
mov dword [edi + 0x3c], ecx
call fcn.00468ca0
push ebp
call fcn.00468740
mov ecx, dword [edi + 0xc]
push ecx
push esi
push 0xffffffffffffffff
call fcn.0043ab30
mov dword [edi + 0x50], eax
mov dword [edi], 1
movzx edx, byte [esi]
lea eax, [edx*4 + 4]
mov dword [edi + 0x14], eax
jmp case.0x4162e6.6
mov eax, dword [edi + 0x14]
cmp ecx, eax
je 0x416413
sub eax, ecx
mov esi, eax
cmp esi, ebp
jbe 0x4163f1
mov esi, ebp
push esi
push ebx
lea ecx, [ecx + edi + 0x2a0]
push ecx
call fcn.004e7600
add dword [edi + 4], esi
mov eax, dword [esp + 0x20]
add dword [eax], esi
add esp, 0xc
add ebx, esi
jmp case.0x4162e6.6
lea edx, [edi + 0x2a0]
push edx
lea ebp, [edi + 0xf8]
push ebp
call fcn.00415620
cmp eax, esi
jne 0x4167b9
movzx eax, word [edi + 0x10]
and eax, 0xf
push eax
lea ecx, [edi + 0x190]
push ecx
mov dword [edi], 6
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], esi
call fcn.00414b80
push ebp
lea edx, [edi + 0x58]
push edx
call fcn.004157b0
cmp eax, esi
je case.0x4162e6.6
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
mov eax, dword [edi + 8]
add eax, dword [edi + 0x18]
xor esi, esi
and eax, 3
or eax, esi
je 0x4164b5
inc ecx
mov dword [edx], ecx
inc dword [edi + 8]
mov al, byte [ebx]
inc ebx
test al, al
je case.0x4162e6.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
movzx ecx, word [edi + 0x10]
push ecx
call fcn.00414b50
mov ecx, dword [edi + 4]
mov esi, eax
sub esi, ecx
mov dword [esp + 0x1c], eax
je 0x4164e1
cmp esi, ebp
jbe 0x4164d2
mov esi, ebp
push esi
push ebx
lea edx, [ecx + edi + 0x2a0]
push edx
jmp 0x4163fb
lea eax, [esp + 0x38]
push eax
lea ecx, [edi + 0x190]
push ecx
mov dword [edi], 5
mov dword [edi + 4], 0
call fcn.004158d0
test eax, eax
je case.0x4162e6.6
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0x2a0]
lea ebp, [esp + 0x38]
cmp eax, 4
jb 0x416539
lea ebx, [ebx]
mov edx, dword [ebp]
cmp edx, dword [esi]
jne 0x41649b
sub eax, 4
add esi, 4
add ebp, 4
cmp eax, 4
jae 0x416520
test eax, eax
je case.0x4162e6.6
mov cl, byte [esi]
cmp cl, byte [ebp]
jne 0x41649b
cmp eax, 1
jbe case.0x4162e6.6
mov dl, byte [esi + 1]
cmp dl, byte [ebp + 1]
jne 0x41649b
cmp eax, 2
jbe case.0x4162e6.6
mov al, byte [esi + 2]
cmp al, byte [ebp + 2]
jmp 0x416495
mov eax, dword [edi + 4]
cmp eax, dword [edi + 0xc]
jae 0x416598
inc ecx
mov dword [edx], ecx
mov esi, dword [edi + 4]
mov dl, byte [esi + edi + 0x2a0]
mov cl, byte [ebx]
inc esi
inc ebx
mov dword [edi + 4], esi
cmp cl, dl
jmp 0x416495
mov esi, dword [edi + 0x3c]
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x30]
cmp esi, eax
ja 0x4165f0
jb 0x4165ae
cmp edx, ecx
jae 0x4165f0
sub ecx, edx
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x4165c0
ja 0x4165be
cmp ebp, ecx
jbe 0x4165c0
mov ebp, ecx
mov eax, dword [edi + 0x50]
push ebp
push ebx
push eax
call fcn.0043ab30
push ebp
push ebx
lea ecx, [edi + 0x210]
push ecx
mov dword [edi + 0x50], eax
call fcn.00468bf0
mov eax, dword [esp + 0x14]
add dword [eax], ebp
add ebx, ebp
add dword [edi + 0x38], ebp
adc dword [edi + 0x3c], 0
jmp case.0x4162e6.6
and edx, 3
xor esi, esi
or edx, esi
je 0x416634
mov dl, byte [ebx]
mov ecx, dword [edi + 0x50]
mov ebp, 1
push ebp
lea eax, [esp + 0x17]
push eax
push ecx
mov byte [esp + 0x1f], dl
add ebx, ebp
call fcn.0043ab30
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x14]
add dword [eax], ebp
add dword [edi + 0x38], ebp
adc dword [edi + 0x3c], esi
add dword [edi + 0x30], ebp
adc dword [edi + 0x34], esi
cmp byte [esp + 0x13], 0
jmp 0x416495
add ecx, 4
adc eax, esi
lea edx, [esp + 0x38]
mov dword [edi + 0x34], eax
push edx
lea eax, [edi + 0x210]
push eax
mov dword [edi], 2
mov dword [edi + 0x30], ecx
mov dword [edi + 4], esi
call fcn.00468ca0
lea eax, [edi + 0x280]
lea ecx, [esp + 0x38]
mov edx, 0x20
sub ecx, eax
lea ebx, [ebx]
mov esi, dword [eax + ecx]
cmp esi, dword [eax]
jne 0x41649b
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x416670
jmp case.0x4162e6.6
cmp dword [edi + 4], 4
jae 0x4166a9
inc ecx
mov dword [edx], ecx
mov dl, byte [ebx]
mov ecx, dword [edi + 4]
mov byte [ecx + edi + 0x2a0], dl
inc dword [edi + 4]
inc ebx
jmp case.0x4162e6.6
mov eax, dword [edi + 0x50]
not eax
mov dword [edi], 3
mov dword [edi + 4], esi
cmp eax, dword [edi + 0x2a0]
jmp 0x416495
mov eax, dword [edi + 4]
mov esi, 0xc
sub esi, eax
cmp esi, ebp
jbe 0x4166d2
mov esi, ebp
push esi
lea ecx, [eax + edi + 0x2a0]
push ebx
push ecx
call fcn.004e7600
add dword [edi + 4], esi
mov eax, dword [esp + 0x20]
add dword [eax], esi
add esp, 0xc
add ebx, esi
cmp dword [edi + 4], 0xc
jne case.0x4162e6.6
add dword [edi + 0x48], 1
mov edx, dword [edi + 0x34]
movzx ecx, word [edi + 0x10]
mov eax, 0
adc dword [edi + 0x4c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x30]
push edx
push eax
lea esi, [edi + 0x2a0]
push ecx
mov dword [edi], 4
call fcn.004155a0
test al, al
jne case.0x4162e6.6
jmp 0x41649b
cmp byte [ebx], 0
je 0x41674b
test byte [edi + 0x40], 3
jne 0x4167b4
mov dword [edi + 4], esi
mov dword [edi], esi
jmp case.0x4162e6.6
inc ecx
mov dword [edx], ecx
inc ebx
add dword [edi + 0x40], 1
adc dword [edi + 0x44], esi
jmp case.0x4162e6.6
mov edx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [edx], 2
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [eax], 3
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c
mov eax, 0x11
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e6a64
add esp, 0x6c
ret 0x1c