Function at 0x415fb0
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.0x4161f6.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 0x4161e3
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 0x416055
test eax, eax
je 0x41666b
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.004147b0
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x190]
sub eax, 1
je 0x4160cd
sub eax, 3
je 0x4160aa
sub eax, 6
jne 0x4160e1
push esi
push ebp
lea ecx, [edi + 0x1a0]
push ecx
call fcn.00468bb0
jmp 0x4160e1
mov edx, dword [edi + 0x19c]
mov eax, dword [edi + 0x198]
push esi
push ebp
push edx
push eax
call fcn.00414440
mov dword [edi + 0x198], eax
mov dword [edi + 0x19c], edx
jmp 0x4160e1
mov ecx, dword [edi + 0x194]
push esi
push ebp
push ecx
call fcn.0043aac0
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 0x41668c
mov ecx, dword [esp + 0x18]
cmp dword [ecx], 1
jne 0x4161bc
movzx eax, word [edi + 0x10]
and eax, 0xf
je 0x416144
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 0x416155
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.00414a00
mov ebp, eax
add ebp, esi
push ebp
lea eax, [esp + 0x3c]
push eax
lea ecx, [edi + 0x210]
push ecx
call fcn.00468bb0
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.0x4161f6.6
cmp eax, edx
jne case.0x4161f6.6
test esi, esi
jne case.0x4161f6.6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x6c
ret 0x1c
xor esi, esi
cmp ebp, esi
je 0x4166a3
cmp eax, 7
ja case.0x4161f6.6
jmp dword [eax*4 + 0x4166e0]
mov ebp, dword [edi + 4]
cmp ebp, 0xc
jae 0x41622c
cmp ebp, 6
jae 0x416218
mov al, byte [ebx]
cmp al, byte [ebp + 0x516b3c]
jne 0x4166c4
mov cl, byte [ebx]
mov byte [edi + ebp + 0x2a0], cl
inc dword [edi + 4]
inc ebx
inc dword [edx]
jmp case.0x4161f6.6
lea edx, [edi + 0x2a0]
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00415460
cmp eax, esi
jne 0x4166c9
lea ecx, [edi + 0x210]
push ecx
mov dword [edi], 5
call fcn.00468700
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.0x4161f6.6
mov ecx, dword [edi + 4]
cmp ecx, esi
jne 0x4162f0
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 0x4162de
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
push eax
push ecx
lea edx, [edi + 0x2a1]
push edx
call fcn.00414a00
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.00468c60
push ebp
call fcn.00468700
mov ecx, dword [edi + 0xc]
push ecx
push esi
push 0xffffffffffffffff
call fcn.0043aac0
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.0x4161f6.6
mov eax, dword [edi + 0x14]
cmp ecx, eax
je 0x416323
sub eax, ecx
mov esi, eax
cmp esi, ebp
jbe 0x416301
mov esi, ebp
push esi
push ebx
lea ecx, [ecx + edi + 0x2a0]
push ecx
call fcn.004e7a80
add dword [edi + 4], esi
mov eax, dword [esp + 0x20]
add dword [eax], esi
add esp, 0xc
add ebx, esi
jmp case.0x4161f6.6
lea edx, [edi + 0x2a0]
push edx
lea ebp, [edi + 0xf8]
push ebp
call fcn.00415530
cmp eax, esi
jne 0x4166c9
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.00414a90
push ebp
lea edx, [edi + 0x58]
push edx
call fcn.004156c0
cmp eax, esi
je case.0x4161f6.6
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6b3a
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 0x4163c5
inc ecx
mov dword [edx], ecx
inc dword [edi + 8]
mov al, byte [ebx]
inc ebx
test al, al
je case.0x4161f6.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x6c
ret 0x1c
movzx ecx, word [edi + 0x10]
push ecx
call fcn.00414a60
mov ecx, dword [edi + 4]
mov esi, eax
sub esi, ecx
mov dword [esp + 0x1c], eax
je 0x4163f1
cmp esi, ebp
jbe 0x4163e2
mov esi, ebp
push esi
push ebx
lea edx, [ecx + edi + 0x2a0]
push edx
jmp 0x41630b
lea eax, [esp + 0x38]
push eax
lea ecx, [edi + 0x190]
push ecx
mov dword [edi], 5
mov dword [edi + 4], 0
call fcn.004157e0
test eax, eax
je case.0x4161f6.6
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0x2a0]
lea ebp, [esp + 0x38]
cmp eax, 4
jb 0x416449
lea ebx, [ebx]
mov edx, dword [ebp]
cmp edx, dword [esi]
jne 0x4163ab
sub eax, 4
add esi, 4
add ebp, 4
cmp eax, 4
jae 0x416430
test eax, eax
je case.0x4161f6.6
mov cl, byte [esi]
cmp cl, byte [ebp]
jne 0x4163ab
cmp eax, 1
jbe case.0x4161f6.6
mov dl, byte [esi + 1]
cmp dl, byte [ebp + 1]
jne 0x4163ab
cmp eax, 2
jbe case.0x4161f6.6
mov al, byte [esi + 2]
cmp al, byte [ebp + 2]
jmp 0x4163a5
mov eax, dword [edi + 4]
cmp eax, dword [edi + 0xc]
jae 0x4164a8
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 0x4163a5
mov esi, dword [edi + 0x3c]
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x30]
cmp esi, eax
ja 0x416500
jb 0x4164be
cmp edx, ecx
jae 0x416500
sub ecx, edx
sbb eax, esi
xor edx, edx
cmp edx, eax
jb 0x4164d0
ja 0x4164ce
cmp ebp, ecx
jbe 0x4164d0
mov ebp, ecx
mov eax, dword [edi + 0x50]
push ebp
push ebx
push eax
call fcn.0043aac0
push ebp
push ebx
lea ecx, [edi + 0x210]
push ecx
mov dword [edi + 0x50], eax
call fcn.00468bb0
mov eax, dword [esp + 0x14]
add dword [eax], ebp
add ebx, ebp
add dword [edi + 0x38], ebp
adc dword [edi + 0x3c], 0
jmp case.0x4161f6.6
and edx, 3
xor esi, esi
or edx, esi
je 0x416544
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.0043aac0
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 0x4163a5
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.00468c60
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 0x4163ab
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x416580
jmp case.0x4161f6.6
cmp dword [edi + 4], 4
jae 0x4165b9
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.0x4161f6.6
mov eax, dword [edi + 0x50]
not eax
mov dword [edi], 3
mov dword [edi + 4], esi
cmp eax, dword [edi + 0x2a0]
jmp 0x4163a5
mov eax, dword [edi + 4]
mov esi, 0xc
sub esi, eax
cmp esi, ebp
jbe 0x4165e2
mov esi, ebp
push esi
lea ecx, [eax + edi + 0x2a0]
push ebx
push ecx
call fcn.004e7a80
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.0x4161f6.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.004154b0
test al, al
jne case.0x4161f6.6
jmp 0x4163ab
cmp byte [ebx], 0
je 0x41665b
test byte [edi + 0x40], 3
jne 0x4166c4
mov dword [edi + 4], esi
mov dword [edi], esi
jmp case.0x4161f6.6
inc ecx
mov dword [edx], ecx
inc ebx
add dword [edi + 0x40], 1
adc dword [edi + 0x44], esi
jmp case.0x4161f6.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.004e6b3a
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.004e6b3a
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.004e6b3a
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.004e6b3a
add esp, 0x6c
ret 0x1c