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

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x111c
call fcn.0046c570
mov ebx, dword [esp + 0x1140]
mov esi, dword [esp + 0x113c]
mov eax, dword [0x4c0018]
xor eax, esp
mov dword [esp + 0x1118], eax
mov ebp, dword [esp + 0x1134]
mov eax, dword [esp + 0x1164]
push ebx
push eax
call fcn.00413750
add esp, 8
mov dword [esp + 0x20], eax
push 0x40
call fcn.0046a540
add esp, 4
mov edi, eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc98], esi
lea esi, [esp + 0xc98]
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [edi + 4]
mov ecx, ebx
shr ecx, 0x10
mov dword [esp + 0x48], ecx
mov ecx, ebx
shr ecx, 0x18
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc98], ebx
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [edi + 4]
mov dword [esp + 0xc98], ebp
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1138]
mov dword [esp + 0xc98], ecx
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [edi + 4]
mov dword [esp + 0xc98], 0x13
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1130]
mov dword [esp + 0xc98], ecx
push 4
push esi
push eax
call dword [eax]
add esp, 0xc
mov ebx, dword [edi + 4]
mov ebp, dword [esp + 0x1148]
mov dword [esp + 0xc98], ebp
push 4
push esi
push ebx
call dword [ebx]
add esp, 0xc
push ebp
mov ebp, dword [esp + 0x1140]
push dword [esp + 0x1148]
push ebx
call dword [ebx]
add esp, 0xc
mov ebx, dword [edi + 4]
mov esi, dword [esp + 0x1150]
mov dword [esp + 0xc98], esi
push 4
lea eax, [esp + 0xc9c]
push eax
push ebx
call dword [ebx]
add esp, 0xc
push esi
push dword [esp + 0x1150]
push ebx
call dword [ebx]
lea ebx, [esp + 0xca4]
add esp, 0xc
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x1158]
mov dword [esp + 0xc98], eax
push 4
push ebx
push esi
call dword [esi]
add esp, 0xc
push dword [esp + 0x1158]
push dword [esp + 0x1158]
push esi
call dword [esi]
add esp, 0xc
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x1160]
mov dword [esp + 0xc98], eax
push 4
push ebx
push esi
call dword [esi]
add esp, 0xc
push dword [esp + 0x1160]
push dword [esp + 0x1160]
push esi
call dword [esi]
add esp, 0xc
mov eax, dword [edi]
lea ecx, [esp + 0x1098]
push ecx
push edi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [edi]
push edi
call dword [eax + 0x10]
add esp, 4
lea ecx, [ebp*4]
xor edi, edi
mov eax, dword [esp + 0x1134]
xor edx, edx
div ecx
mov dword [esp + 0x1c], eax
lea eax, [eax*4]
mov dword [esp + 0x10], eax
mov esi, eax
imul esi, ebp
push 0
push 0x400
push esi
call fcn.00413470
add esp, 0xc
mov dword [esp + 0x28], esi
mov ecx, esi
shl ecx, 0xa
mov dword [esp + 0x40], ecx
push ecx
push 0
mov dword [esp + 0xc], eax
push eax
call fcn.0046f290
add esp, 0xc
test ebp, ebp
je 0x45e961
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x40
call fcn.0046a540
add esp, 4
mov esi, eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc98], 0x400
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
push 0x40
lea eax, [esp + 0x109c]
push eax
push dword [esi + 4]
call fcn.00412bf0
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [esp + 0xc98], 0
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [esp + 0xc98], edi
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
mov dword [esp], edi
mov ebp, edi
shl ebp, 0xa
add ebp, dword [esp + 4]
mov edi, ebx
mov ebx, 0x400
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
mov eax, dword [esp + 0xcb4]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0xcb0]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0xcac]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0xca8]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0xca4]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0xca0]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xc98]
mov ecx, dword [esp + 0xc9c]
mov dword [ebp + 4], ecx
mov dword [ebp], eax
add ebp, 0x20
add ebx, 0xffffffe0
push 0x40
call fcn.0046a540
add esp, 4
mov esi, eax
push 0x40
push edi
push dword [eax + 4]
call fcn.00412bf0
add esp, 0xc
push 0x40
push edi
call fcn.0042f4b0
add esp, 8
cmp ebx, 0x40
ja 0x45e750
mov eax, dword [esi]
push ebp
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
mov eax, dword [esp]
add eax, 1
mov ebp, dword [esp + 0x113c]
cmp eax, ebp
mov ebx, edi
mov edi, eax
jne 0x45e6d0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x40
call fcn.0046a540
add esp, 4
mov edi, esi
mov esi, eax
mov eax, dword [eax + 4]
mov dword [esp + 0xc98], 0x400
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
push 0x40
lea eax, [esp + 0x109c]
push eax
push dword [esi + 4]
call fcn.00412bf0
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [esp + 0xc98], 1
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [esp + 0xc98], edi
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
mov dword [esp], edi
add ebp, edi
shl ebp, 0xa
add ebp, dword [esp + 4]
mov edi, ebx
mov ebx, 0x400
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
mov eax, dword [esp + 0xcb4]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0xcb0]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0xcac]
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0xca8]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0xca4]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0xca0]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0xc98]
mov ecx, dword [esp + 0xc9c]
mov dword [ebp + 4], ecx
mov dword [ebp], eax
add ebp, 0x20
add ebx, 0xffffffe0
push 0x40
call fcn.0046a540
add esp, 4
mov esi, eax
push 0x40
push edi
push dword [eax + 4]
call fcn.00412bf0
add esp, 0xc
push 0x40
push edi
call fcn.0042f4b0
add esp, 8
cmp ebx, 0x40
ja 0x45e8a0
mov eax, dword [esi]
push ebp
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
mov esi, dword [esp]
add esi, 1
mov ebp, dword [esp + 0x113c]
cmp esi, ebp
mov ebx, edi
jne 0x45e820
mov eax, dword [esp + 0x1138]
test eax, eax
je 0x45ee97
mov ecx, dword [esp + 0x1130]
test ecx, ecx
sete dl
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
mov esi, edx
shr esi, 0x10
mov dword [esp + 0x6c], esi
shr edx, 0x18
mov dword [esp + 0x68], edx
mov edx, eax
shr edx, 0x10
mov dword [esp + 0x64], edx
shr eax, 0x18
mov dword [esp + 0x60], eax
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x5c], eax
shr ecx, 0x18
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x10]
add eax, 0xffffffff
mov dword [esp + 0x24], eax
mov ecx, 2
mov edx, ebx
xor edi, edi
jmp 0x45e9dd
add edi, 1
xor ecx, ecx
cmp edi, eax
je 0x45ee91
mov eax, edi
shr eax, 0x10
mov dword [esp + 0x74], eax
mov eax, edi
shr eax, 0x18
mov dword [esp + 0x70], eax
xor ebx, ebx
mov dword [esp + 0x2c], edi
jmp 0x45ea18
mov esi, dword [esp + 0x4c]
mov ebx, esi
mov eax, dword [esp + 0x1138]
mov edi, dword [esp + 0x2c]
xor ecx, ecx
cmp esi, 4
je 0x45e9d0
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x1130]
xor eax, 2
mov ecx, ebx
xor ecx, 2
or eax, edi
or eax, ecx
mov eax, dword [esp + 0x18]
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x45ee80
mov esi, ebx
mov ecx, dword [esp + 0x1c]
imul esi, ecx
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x7c], eax
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0x78], eax
mov eax, edi
or eax, ebx
sete byte [esp + 0xf]
mov dword [esp + 0x80], ebx
lea eax, [ebx + 1]
mov dword [esp + 0x4c], eax
and eax, 3
imul eax, ecx
test edi, edi
cmove eax, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x30]
lea eax, [ecx*8]
mov dword [esp + 0x50], eax
xor eax, eax
jmp 0x45eabf
mov eax, dword [esp + 8]
add eax, 1
cmp eax, ebp
je 0x45ea00
mov dword [esp + 8], eax
cmp ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jae 0x45eab0
mov eax, dword [esp + 8]
mov esi, eax
shr esi, 0x10
mov dword [esp + 0x88], esi
shr eax, 0x18
mov dword [esp + 0x84], eax
xor esi, esi
mov eax, dword [esp + 0x50]
mov dword [esp + 0x38], eax
mov eax, ecx
jmp 0x45eba7
mov eax, dword [esp + 0x54]
xor edx, edx
div dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], ebp
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov eax, edi
sub eax, ecx
add eax, edx
xor edx, edx
div edi
mov ebp, edx
mov eax, dword [esp + 0x3c]
mul eax
mov eax, edx
mul ebp
add ebp, ecx
not edx
add ebp, edx
mov eax, ebp
xor edx, edx
div edi
mov eax, edx
mov ebp, dword [esp + 0x113c]
imul eax, ebp
add eax, dword [esp]
shl eax, 0xa
mov edx, dword [esp + 4]
add eax, edx
imul esi, ebp
add esi, ebx
shl esi, 0xa
add esi, edx
mov ecx, dword [esp + 0x8c]
imul ecx, ebp
add ecx, ebx
shl ecx, 0xa
add ecx, edx
mov edx, esi
push eax
call fcn.0045f170
add esp, 4
mov edx, dword [esp + 0x90]
add edx, 1
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x94]
lea eax, [ecx + esi]
add eax, 1
add esi, 1
add dword [esp + 0x38], 8
cmp eax, dword [esp + 0x1c]
mov eax, edx
lea edx, [esp + 0xc98]
je 0x45eab0
lea ebx, [ecx + esi]
mov dword [esp + 0x90], eax
mov ecx, eax
add ecx, dword [esp + 0x34]
mov eax, esi
mov dword [esp + 0x8c], ecx
mov esi, ecx
cmove esi, edi
add esi, 0xffffffff
test byte [esp + 0x18], 1
mov dword [esp + 0x94], eax
jne 0x45ee00
test eax, eax
je 0x45ebe9
mov eax, ebx
and eax, 0x7f
jne 0x45edc2
push 0x3c8
push 0
lea eax, [esp + 0x4d8]
push eax
mov edi, edx
call fcn.0046f290
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x498], al
mov byte [esp + 0x499], ah
mov eax, dword [esp + 0x74]
mov byte [esp + 0x49a], al
mov eax, dword [esp + 0x70]
mov byte [esp + 0x49b], al
mov dword [esp + 0x49c], 0
mov eax, dword [esp + 8]
mov byte [esp + 0x4a0], al
mov byte [esp + 0x4a1], ah
mov eax, dword [esp + 0x88]
mov byte [esp + 0x4a2], al
mov eax, dword [esp + 0x84]
mov byte [esp + 0x4a3], al
mov dword [esp + 0x4a4], 0
mov eax, dword [esp + 0x80]
mov byte [esp + 0x4a8], al
mov byte [esp + 0x4a9], ah
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x4aa], al
mov eax, dword [esp + 0x78]
mov byte [esp + 0x4ab], al
mov dword [esp + 0x4ac], 0
mov eax, dword [esp + 0x28]
mov byte [esp + 0x4b0], al
mov byte [esp + 0x4b1], ah
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x4b2], al
mov eax, dword [esp + 0x68]
mov byte [esp + 0x4b3], al
mov dword [esp + 0x4b4], 0
mov eax, dword [esp + 0x1138]
mov byte [esp + 0x4b8], al
mov byte [esp + 0x4b9], ah
mov eax, dword [esp + 0x64]
mov byte [esp + 0x4ba], al
mov eax, dword [esp + 0x60]
mov byte [esp + 0x4bb], al
mov dword [esp + 0x4bc], 0
mov eax, dword [esp + 0x1130]
mov byte [esp + 0x4c0], al
mov byte [esp + 0x4c1], ah
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x4c2], al
mov eax, dword [esp + 0x58]
mov byte [esp + 0x4c3], al
mov eax, ebx
shr eax, 7
add eax, 1
mov dword [esp + 0x4c4], 0
mov byte [esp + 0x4c8], al
mov byte [esp + 0x4c9], ah
mov ecx, eax
shr ecx, 0x10
mov byte [esp + 0x4ca], cl
shr eax, 0x18
mov byte [esp + 0x4cb], al
mov dword [esp + 0x4cc], 0
push 0x400
push 0
lea ebp, [esp + 0x8a0]
push ebp
call fcn.0046f290
add esp, 0xc
mov ecx, ebp
mov edx, ebp
lea eax, [esp + 0x498]
push eax
call fcn.0045f170
add esp, 4
push 0x400
push 0
push edi
call fcn.0046f290
add esp, 0xc
mov ecx, edi
mov edx, edi
push ebp
call fcn.0045f170
add esp, 4
mov edi, ebx
mov eax, dword [esp + 0x38]
and eax, 0x3f8
mov ecx, dword [esp + eax + 0xc98]
mov dword [esp + 0x3c], ecx
movzx ecx, word [esp + eax + 0xc9c]
movzx ebp, byte [esp + eax + 0xc9e]
shl ebp, 0x10
or ebp, ecx
add eax, esp
add eax, 0xc9f
mov ebx, dword [esp + 8]
jmp 0x45ee2f
mov edi, ebx
mov eax, esi
imul eax, ebp
mov ebx, dword [esp + 8]
add eax, ebx
shl eax, 0xa
mov edx, dword [esp + 4]
movzx ecx, word [edx + eax + 4]
movzx ebp, byte [edx + eax + 6]
shl ebp, 0x10
or ebp, ecx
mov ecx, dword [edx + eax]
mov dword [esp + 0x3c], ecx
add eax, edx
add eax, 7
xor ecx, ecx
mov dword [esp], ebx
mov edx, esi
cmp byte [esp + 0xf], 0
jne 0x45eb0d
movzx eax, byte [eax]
shl eax, 0x18
or eax, ebp
xor edx, edx
div dword [esp + 0x113c]
mov ebp, edx
mov ecx, dword [esp + 0x14]
mov dword [esp], ebx
mov edx, esi
cmp ebp, ebx
je 0x45eb0d
test edi, edi
je 0x45eaf8
mov ecx, dword [esp + 0x14]
mov dword [esp], ebp
mov edx, dword [esp + 0x34]
jmp 0x45eb09
add ebx, 1
mov esi, ebx
mov eax, dword [esp + 0x1138]
jmp 0x45ea11
mov esi, dword [esp + 0x24]
jmp 0x45eea0
mov eax, dword [esp + 0x10]
add eax, 0xffffffff
mov esi, eax
imul esi, ebp
shl esi, 0xa
mov eax, dword [esp + 4]
add eax, esi
lea edi, [esp + 0x98]
push 0x400
push eax
push edi
call fcn.0046ed10
add esp, 0xc
cmp ebp, 2
jb 0x45eefb
add ebp, 0xffffffff
mov eax, dword [esp + 4]
add esi, eax
add esi, 0x400
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x400
push esi
push edi
push edi
call fcn.0046b390
add esp, 0x10
add esi, 0x400
add ebp, 0xffffffff
jne 0x45eee0
mov ebx, dword [esp + 0x1140]
cmp ebx, 0x40
mov eax, 0x40
cmovb eax, ebx
push eax
call fcn.0046a540
add esp, 4
mov esi, eax
mov eax, dword [eax + 4]
mov byte [esp + 0x10d8], bl
mov byte [esp + 0x10d9], bh
mov ebp, ebx
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x10da], cl
mov ecx, dword [esp + 0x44]
mov byte [esp + 0x10db], cl
lea ebx, [esp + 0x10d8]
push 4
push ebx
push eax
call dword [eax]
add esp, 0xc
push 0x400
push edi
push dword [esi + 4]
call fcn.00412bf0
add esp, 0xc
cmp ebp, 0x41
jb 0x45f012
mov edi, dword [esp + 0x20]
nop
mov eax, dword [esi]
push ebx
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
mov eax, dword [esp + 0x10f4]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x10f0]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x10ec]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x10e8]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10e4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x10e0]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x10d8]
mov ecx, dword [esp + 0x10dc]
mov dword [edi + 4], ecx
mov dword [edi], eax
add edi, 0x20
add ebp, 0xffffffe0
cmp ebp, 0x40
mov eax, 0x40
cmovb eax, ebp
push eax
call fcn.0046a540
add esp, 4
mov esi, eax
push 0x40
push ebx
push dword [eax + 4]
call fcn.00412bf0
add esp, 0xc
push 0x40
push ebx
call fcn.0042f4b0
add esp, 8
cmp ebp, 0x40
ja 0x45ef70
jmp 0x45f016
mov edi, dword [esp + 0x20]
mov eax, dword [esi]
push edi
push esi
call dword [eax + 0xc]
add esp, 8
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
add esp, 4
push 0x400
lea eax, [esp + 0xc9c]
push eax
call fcn.0042f4b0
add esp, 8
lea eax, [esp + 0x898]
push 0x400
push eax
call fcn.0042f4b0
add esp, 8
lea eax, [esp + 0x498]
push 0x400
push eax
call fcn.0042f4b0
add esp, 8
push 0x400
lea eax, [esp + 0x9c]
push eax
call fcn.0042f4b0
add esp, 8
push dword [esp + 0x40]
mov esi, dword [esp + 8]
push esi
call fcn.0042f4b0
add esp, 8
push esi
call fcn.00413500
add esp, 4
mov ecx, dword [esp + 0x1118]
xor ecx, esp
call fcn.0046c560
add esp, 0x111c
pop esi
pop edi
pop ebx
pop ebp
ret