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

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x28]
push ebp
push esi
mov esi, dword [esp + 0x24]
mov eax, dword [ebx]
push edi
mov edi, dword [esp + 0x3c]
mov dword [ebx], 0
mov dword [esp + 0x14], eax
mov dword [edi], 0
mov ecx, dword [esi + 0x78]
cmp ecx, 8
je 0x41574c
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x18], 5
mov edx, dword [esi + 0x24]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
cmp ecx, 9
je 0x41578a
cmp edx, eax
jne 0x4153e0
cmp dword [esp + 0x38], 0
je 0x41575c
cmp ecx, 6
je 0x415542
cmp ecx, 7
je 0x415542
mov eax, dword [ebx]
cmp eax, dword [esp + 0x14]
je 0x415770
inc eax
mov dword [ebx], eax
mov ecx, dword [esi + 0x78]
mov al, byte [ebp]
cmp ecx, 5
ja case.default.0x415410
jmp dword [ecx*4 + 0x415798]
mov byte [esi + 0x7c], al
test al, al
jne 0x41542c
mov eax, 8
inc ebp
mov dword [esi + 0x78], eax
jmp 0x415740
js 0x41544b
and al, 0x7f
cmp al, 2
ja case.default.0x415410
xor eax, eax
inc ebp
mov dword [esi + 0x74], eax
mov eax, 1
mov dword [esi + 0x78], eax
jmp 0x415740
movzx eax, al
and eax, 0x1f
shl eax, 0x10
inc ebp
mov dword [esi + 0x74], eax
mov eax, 1
mov dword [esi + 0x78], eax
jmp 0x415740
movzx eax, al
shl eax, 8
or dword [esi + 0x74], eax
mov eax, 2
mov dword [esi + 0x78], eax
inc ebp
jmp 0x415740
movzx eax, al
or eax, dword [esi + 0x74]
inc eax
mov dword [esi + 0x74], eax
movsx eax, byte [esi + 0x7c]
sar eax, 7
and eax, 0xfffffffd
add eax, 6
inc ebp
mov dword [esi + 0x78], eax
jmp 0x415740
movzx eax, al
shl eax, 8
inc ebp
mov dword [esi + 0x70], eax
mov eax, 4
mov dword [esi + 0x78], eax
jmp 0x415740
movzx eax, al
or eax, dword [esi + 0x70]
inc eax
mov dword [esi + 0x70], eax
mov al, byte [esi + 0x7c]
and al, 0x60
cmp al, 0x40
jb 0x4154d4
mov eax, 5
inc ebp
mov dword [esi + 0x78], eax
jmp 0x415740
cmp dword [esi + 0x88], 0
mov eax, 6
mov ecx, 9
cmovne eax, ecx
inc ebp
mov dword [esi + 0x78], eax
jmp 0x415740
cmp al, 0xe1
jae case.default.0x415410
movzx eax, al
xor edx, edx
mov ecx, 9
div ecx
mov ecx, edx
movzx eax, al
xor edx, edx
div dword [esp + 0x18]
mov dword [esi + 8], eax
lea eax, [edx + ecx]
cmp eax, 4
jg case.default.0x415410
mov eax, 6
mov dword [esi], ecx
mov dword [esi + 4], edx
inc ebp
mov dword [esi + 0x88], 0
mov dword [esi + 0x78], eax
jmp 0x415740
mov eax, 9
inc ebp
mov dword [esi + 0x78], eax
jmp 0x415740
mov edi, dword [esp + 0x14]
sub eax, edx
mov edx, dword [ebx]
sub edi, edx
mov ebx, dword [esi + 0x74]
cmp eax, ebx
mov dword [esp + 0x28], edx
sbb edx, edx
mov dword [esp + 0x10], edi
inc edx
cmp ebx, eax
mov dword [esp + 0x1c], edx
mov dl, byte [esi + 0x7c]
cmova ebx, eax
test dl, dl
js 0x41562c
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x28], eax
je 0x41576c
cmp ecx, 6
jne 0x4155ca
xor eax, eax
cmp dl, 1
sete al
jne 0x4155a3
mov dword [esi + 0x84], 1
mov dword [esi + 0x88], 1
jmp 0x4155b0
cmp dword [esi + 0x80], 0
jne 0x41578a
push 0
push eax
push esi
mov dword [esi + 0x80], 0
call fcn.00416ac0
mov edi, dword [esp + 0x1c]
add esp, 0xc
cmp edi, ebx
cmova edi, ebx
mov dword [esp + 0x10], edi
test edi, edi
je 0x41578a
mov eax, dword [esi + 0x14]
add eax, dword [esi + 0x24]
push edi
push ebp
push eax
call sub.VCRUNTIME140.dll_memcpy
add dword [esi + 0x24], edi
add esp, 0xc
cmp dword [esi + 0x30], 0
jne 0x415604
mov ecx, dword [esi + 0xc]
mov eax, ecx
sub eax, dword [esi + 0x2c]
cmp eax, edi
ja 0x415604
mov dword [esi + 0x30], ecx
add dword [esi + 0x2c], edi
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
add ebp, eax
mov edi, dword [esp + 0x3c]
add dword [ebx], eax
sub dword [esi + 0x74], eax
mov eax, dword [esi + 0x74]
neg eax
sbb eax, eax
and eax, 7
mov dword [esi + 0x78], eax
jmp 0x415740
cmp ecx, 6
jne 0x4156a3
movzx ecx, dl
xor edx, edx
mov eax, ecx
mov byte [esp + 0x28], 0
and eax, 0x60
cmp al, 0x60
mov eax, ecx
sete dl
and al, 0x60
cmp byte [esp + 0x28], al
mov eax, ecx
sbb edi, edi
and eax, 0x60
neg edi
cmp al, 0x60
je 0x415679
cmp dword [esi + 0x80], 0
jne 0x41578a
test cl, 0x60
ja 0x415679
cmp dword [esi + 0x84], 0
jne 0x41578a
push edi
push edx
push esi
call fcn.00416ac0
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x78], 7
cmp edi, dword [esi + 0x70]
lea eax, [esp + 0x10]
push dword [esp + 0x3c]
cmova edi, dword [esi + 0x70]
push dword [esp + 0x20]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
push eax
push ebp
lea eax, [ebx + edi]
push eax
push esi
call fcn.00416770
mov ebx, dword [esp + 0x4c]
mov ecx, eax
mov edx, dword [esp + 0x28]
add esp, 0x18
add ebp, edx
add dword [ebx], edx
mov eax, dword [esi + 0x70]
sub eax, edx
mov dword [esp + 0x20], eax
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x24]
sub eax, edi
mov edi, dword [esi + 0x74]
sub edi, eax
mov dword [esp + 0x28], eax
mov dword [esi + 0x74], edi
test ecx, ecx
jne 0x415780
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
cmp eax, 3
je 0x415752
mov ecx, eax
test edx, edx
jne 0x415731
cmp dword [esp + 0x28], edx
jne 0x415731
cmp eax, 4
jne 0x41578a
test edi, edi
jne 0x41578a
cmp dword [esp + 0x20], edi
jne 0x41578a
mov dword [esi + 0x78], edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi]
jmp 0x415735
mov edi, dword [esp + 0x3c]
cmp ecx, 4
jne 0x415740
mov dword [edi], 2
mov ecx, dword [esi + 0x78]
cmp ecx, 8
jne 0x4153bd
mov dword [edi], 1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret
mov dword [edi], 2
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov edi, dword [esp + 0x3c]
mov dword [edi], 3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret