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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0xdc
cmp byte [ecx + 0xcb], 0
jne 0x45a700
movzx ebp, byte [ecx + 0xca]
mov eax, ebp
test al, al
je 0x45a520
cmp dword [ecx + 0x64], 1
je 0x45a700
mov ecx, dword [ebx + 0x14]
cmp ecx, 0x5e
jg 0x45a600
cmp ecx, 0x5c
jg 0x45a653
cmp ecx, 0x28
je 0x45a6e8
jle 0x45a788
cmp ecx, 0x3f
jg 0x45ab80
sub ecx, 0x29
mov eax, 1
shl eax, cl
test eax, 0x76002b
jne 0x45a653
test eax, 0x80040
je 0x45a800
movzx esi, word [ebx + 0xce]
movzx ecx, byte [ebx + 0xcc]
movzx eax, byte [ebx + 0xcd]
mov edi, dword [ebx + 0xc]
mov word [esp + 0x28], si
mov esi, dword [ebx + 0xf4]
mov byte [esp + 0x2c], cl
mov byte [esp + 0x20], al
test esi, esi
jne 0x45a810
mov eax, dword [ebx + 0xf0]
test eax, eax
je 0x45a8c8
mov esi, ebx
mov edx, ebp
movzx ebx, byte [esp + 0x20]
jmp 0x45a5ca
mov eax, dword [eax]
test eax, eax
je 0x45ab48
cmp edi, dword [eax + 4]
jne 0x45a5c0
mov byte [esp + 0x58], dl
mov ebp, dword [eax + 8]
mov byte [esp + 0x59], 0
mov byte [esp + 0x5a], cl
mov byte [esp + 0x5b], bl
cmp dword [esp + 0x58], ebp
jne 0x45a5c0
movzx ebp, word [esp + 0x28]
cmp word [eax + 0xc], bp
jne 0x45a5c0
mov ebx, esi
movzx eax, byte [eax + 0x10]
mov byte [esp + 0x18], al
jmp 0x45a648
cmp ecx, 0x8d
jg 0x45a740
cmp ecx, 0x7a
jle 0x45a700
sub ecx, 0x7b
mov eax, 1
shl eax, cl
test eax, 0x7e026
jne 0x45a653
test al, 0x90
jne 0x45a777
test al, 1
je 0x45a700
movzx eax, byte [esp + 0xf9]
shr al, 4
and eax, 1
mov byte [esp + 0x18], al
cmp byte [esp + 0x18], 0
je 0x45a700
mov esi, dword [esp + 0xf4]
mov eax, dword [esp + 0xf4]
mov ecx, dword [ebx + 0x78]
mov eax, dword [eax]
mov edi, dword [esi + 0x14]
mov esi, dword [esi + 4]
movd xmm1, eax
movd xmm2, edi
sub esi, eax
mov eax, dword [esp + 0xf4]
punpckldq xmm1, xmm2
movd xmm0, esi
mov eax, dword [eax + 0x10]
movd xmm3, eax
mov dword [esp + 0x18], eax
lea eax, [ecx - 1]
or eax, 3
punpckldq xmm0, xmm3
add eax, 1
mov edx, eax
sub edx, ecx
lea edi, [edx + 0x18]
mov edx, dword [ebx + 0x7c]
sub edx, ecx
cmp edx, edi
jb 0x45a7a8
mov esi, dword [esp + 0xf4]
lea edx, [eax + 0x18]
mov dword [ebx + 0x78], edx
mov edx, dword [esi + 8]
mov dword [eax], 0x2d
movq qword [eax + 8], xmm1
mov dword [eax + 4], edx
movq qword [eax + 0x10], xmm0
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
test byte [esp + 0xf9], 0x10
jne 0x45a653
mov eax, ebp
test al, al
je 0x45a653
movzx eax, word [esp + 0xf8]
mov ecx, ebx
mov word [esp + 8], ax
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
call fcn.00458dc0
sub esp, 0xc
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
cmp ecx, 0xa8
jg 0x45ab58
cmp ecx, 0x8e
je 0x45a700
sub ecx, 0x8f
mov eax, 1
shl eax, cl
test eax, 0x3bbefff
jne 0x45a653
test eax, 0x41000
je 0x45a56d
mov eax, ebp
xor eax, 1
mov byte [esp + 0x18], al
jmp 0x45a648
cmp ecx, 0x21
je 0x45a56d
sub ecx, 0x25
cmp ecx, 1
jbe 0x45a653
jmp 0x45a700
movq qword [esp + 0x20], xmm1
movq qword [esp + 0x18], xmm0
call fcn.00471540
mov ecx, eax
mov eax, dword [eax]
mov dword [esp + 4], 4
mov dword [esp], 0x1000
call dword [eax + 8]
mov edx, eax
mov eax, dword [ebx + 0x74]
sub esp, 8
mov dword [edx + 4], 0xff8
movq xmm1, qword [esp + 0x20]
mov dword [edx], eax
lea eax, [edx + 8]
movq xmm0, qword [esp + 0x18]
mov dword [ebx + 0x74], edx
add edx, 0x1000
mov dword [ebx + 0x7c], edx
jmp 0x45a6b1
test al, 0x14
jne 0x45a777
jmp 0x45a700
mov esi, dword [ebx + 0xec]
mov eax, edi
xor edx, edx
div esi
mov eax, dword [ebx + 0xe8]
mov dword [esp + 0x30], esi
mov esi, dword [eax + edx*4]
mov dword [esp + 0x18], edx
test esi, esi
je 0x45a8c8
mov eax, dword [esi]
mov edx, ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x30], ebx
mov byte [esp + 0x34], dl
mov ecx, dword [eax + 0x14]
jmp 0x45a871
mov ebx, dword [eax]
test ebx, ebx
je 0x45ab90
mov ecx, dword [ebx + 0x14]
mov esi, eax
xor edx, edx
mov eax, ecx
div ebp
cmp dword [esp + 0x18], edx
jne 0x45ab90
mov eax, ebx
cmp ecx, edi
jne 0x45a850
cmp edi, dword [eax + 4]
jne 0x45a850
movzx edx, byte [esp + 0x34]
mov ebx, dword [eax + 8]
mov byte [esp + 0x59], 0
mov byte [esp + 0x58], dl
movzx edx, byte [esp + 0x2c]
mov byte [esp + 0x5a], dl
movzx edx, byte [esp + 0x20]
mov byte [esp + 0x5b], dl
cmp dword [esp + 0x58], ebx
jne 0x45a850
movzx ebx, word [esp + 0x28]
cmp word [eax + 0xc], bx
jne 0x45a850
mov eax, dword [esi]
movzx ebp, byte [esp + 0x34]
mov ebx, dword [esp + 0x30]
test eax, eax
jne 0x45a5f6
lea esi, [esi]
lea eax, [ebx + 0x80]
lea ecx, [esp + 0x78]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0xc]
mov dword [esp], eax
mov dword [esp + 0x30], eax
call fcn.0044dcf0
mov eax, dword [ebx + 0x80]
sub esp, 4
mov dword [esp + 0xc0], 0x584df4
mov eax, dword [eax + 8]
cmp eax, 0x460280
jne 0x45ac99
mov eax, dword [ebx + 0x88]
mov esi, dword [ebx + 0x8c]
sub esi, dword [ebx + 0x88]
sub eax, 1
or eax, 3
mov ecx, eax
lea eax, [eax + 1]
mov edx, eax
sub edx, dword [ebx + 0x88]
add edx, 0x10
cmp esi, edx
jb 0x45ae12
lea edx, [ecx + 0x11]
mov dword [ebx + 0x88], edx
mov esi, dword [esp + 0x18]
mov dword [eax + 4], 0
movd xmm0, eax
lea edx, [esp + 0xf8]
movd xmm4, dword [ebx + 0x60]
lea ecx, [ebx + 0x104]
mov dword [eax + 8], 0
mov dword [eax], esi
mov dword [eax + 0xc], esi
lea eax, [esp + 0xc0]
mov esi, dword [esp + 0xf4]
punpckldq xmm0, xmm4
mov dword [ebx + 0x60], eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x64], edx
mov edx, dword [ebx + 0x110]
mov dword [esp + 4], eax
lea eax, [esp + 0x50]
mov dword [esp], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x6c], ebx
movq qword [esp + 0xc4], xmm0
call fcn.00464390
sub esp, 8
mov byte [esp + 0x18], al
test al, al
jne 0x45ac6d
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x60], eax
lea eax, [esp + 0x78]
mov dword [esp], eax
call fcn.0044dde0
sub esp, 4
cmp byte [ebx + 0xca], 0
je 0x45aa0f
xor byte [esp + 0x18], 1
mov esi, dword [ebx + 0xec]
mov eax, edi
xor edx, edx
div esi
mov dword [esp + 0x34], esi
lea eax, [edx*4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0xe8]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x45aba7
mov esi, eax
mov eax, dword [eax]
mov edx, ebp
mov ebp, dword [esp + 0x34]
mov byte [esp + 0x3c], dl
mov dword [esp + 0x34], ebx
mov ecx, dword [eax + 0x14]
jmp 0x45aa81
mov ebx, dword [eax]
test ebx, ebx
je 0x45ab9e
mov ecx, dword [ebx + 0x14]
mov esi, eax
xor edx, edx
mov eax, ecx
div ebp
cmp dword [esp + 0x30], edx
jne 0x45ab9e
mov eax, ebx
cmp edi, ecx
jne 0x45aa60
cmp edi, dword [eax + 4]
jne 0x45aa60
movzx edx, byte [esp + 0x3c]
mov ebx, dword [eax + 8]
mov byte [esp + 0x59], 0
mov byte [esp + 0x58], dl
movzx edx, byte [esp + 0x2c]
mov byte [esp + 0x5a], dl
movzx edx, byte [esp + 0x20]
mov byte [esp + 0x5b], dl
cmp dword [esp + 0x58], ebx
jne 0x45aa60
movzx ebx, word [esp + 0x28]
cmp word [eax + 0xc], bx
jne 0x45aa60
cmp dword [esi], 0
movzx ebp, byte [esp + 0x3c]
mov ebx, dword [esp + 0x34]
je 0x45aba7
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc0], 0x584df4
test esi, esi
je 0x45a648
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov ebp, ecx
test edi, edi
je 0x45ab21
lea esi, [esi]
mov ecx, dword [esi + 0xc]
mov edx, edi
mov edi, dword [edi + 4]
mov eax, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], 0xfec
mov dword [esp], edx
call dword [eax + 0xc]
sub esp, 0xc
test edi, edi
jne 0x45aaf8
mov ecx, ebp
mov eax, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], 0x10
mov dword [esp], esi
call dword [eax + 0xc]
sub esp, 0xc
jmp 0x45a648
mov ebp, edx
mov ebx, esi
jmp 0x45a8c8
cmp ecx, 0xdc
je 0x45a777
jg 0x45a700
and ecx, 0xfffffffd
cmp ecx, 0xcd
jne 0x45a700
jmp 0x45a653
cmp ecx, 0x5b
je 0x45a777
jmp 0x45a700
movzx ebp, byte [esp + 0x34]
mov ebx, dword [esp + 0x30]
jmp 0x45a8c8
movzx ebp, byte [esp + 0x3c]
mov ebx, dword [esp + 0x34]
mov ecx, dword [ebx + 0xe4]
mov eax, dword [ecx]
mov dword [esp + 4], 4
mov dword [esp], 0x18
call dword [eax + 8]
lea ecx, [ebx + 0xf8]
sub esp, 8
mov dword [eax], 0
mov esi, eax
mov dword [eax + 4], edi
mov dword [esp + 0x30], eax
mov eax, ebp
mov byte [esi + 8], al
movzx eax, byte [esp + 0x2c]
mov byte [esi + 9], 0
mov byte [esi + 0xa], al
movzx eax, byte [esp + 0x20]
mov byte [esi + 0xb], al
movzx eax, word [esp + 0x28]
mov byte [esi + 0xc], al
mov byte [esi + 0xd], ah
movzx eax, byte [esp + 0x18]
mov byte [esi + 0x10], al
mov dword [esp + 8], 1
mov eax, dword [ebx + 0xf4]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xec]
mov dword [esp], eax
call fcn.004e6c20
sub esp, 0xc
mov dword [esp + 0x20], edx
test al, al
jne 0x45acb6
mov eax, dword [ebx + 0xe8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
add ecx, eax
mov eax, dword [ecx]
mov dword [esi + 0x14], edi
test eax, eax
je 0x45addf
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [ecx]
mov dword [eax], esi
add dword [ebx + 0xf4], 1
jmp 0x45aad0
mov eax, dword [esp + 0xc4]
mov byte [esp + 0x18], 0
mov esi, dword [eax + 4]
test esi, esi
jne 0x45a9e4
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
sete byte [esp + 0x18]
jmp 0x45a9e4
mov dword [esp + 4], 4
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x10
call eax
sub esp, 8
jmp 0x45a940
cmp dword [esp + 0x20], 1
je 0x45ae63
mov ecx, dword [ebx + 0xe4]
lea esi, [edx*4]
mov eax, dword [ecx]
mov dword [esp + 4], 4
mov dword [esp], esi
call dword [eax + 8]
sub esp, 8
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x28], eax
call fcn.004a0ad0
lea ecx, [ebx + 0x100]
mov ebp, dword [ebx + 0xf0]
lea eax, [ebx + 0xf0]
mov dword [ebx + 0xf0], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x34], eax
test ebp, ebp
je 0x45ad85
mov dword [esp + 0x38], edi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x3c], ecx
jmp 0x45ad3f
mov edx, dword [edi]
mov dword [ecx], edx
mov eax, dword [eax]
mov dword [eax], ecx
test ebp, ebp
je 0x45ad7d
mov ecx, ebp
xor edx, edx
mov ebp, dword [ebp]
mov eax, dword [ecx + 0x14]
div dword [esp + 0x20]
lea eax, [esi + edx*4]
mov edi, dword [eax]
test edi, edi
jne 0x45ad33
mov edi, dword [ebx + 0xf0]
mov dword [ecx], edi
mov edi, dword [esp + 0x34]
mov dword [ebx + 0xf0], ecx
mov dword [eax], edi
mov eax, dword [ecx]
test eax, eax
je 0x45ad77
mov eax, dword [esp + 0x2c]
mov dword [esi + eax*4], ecx
mov dword [esp + 0x2c], edx
jmp 0x45ad3b
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx + 0xe8]
mov edx, dword [ebx + 0xec]
cmp eax, ecx
je 0x45adb5
mov ecx, dword [ebx + 0xe4]
shl edx, 2
mov esi, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [esi + 0xc]
sub esp, 0xc
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
xor edx, edx
mov dword [ebx + 0xe8], eax
mov eax, edi
div esi
mov dword [ebx + 0xec], esi
lea eax, [edx*4]
mov dword [esp + 0x38], eax
jmp 0x45ac3e
mov eax, dword [ebx + 0xf0]
mov dword [esi], eax
mov dword [ebx + 0xf0], esi
mov eax, dword [esi]
test eax, eax
je 0x45ae05
mov eax, dword [eax + 0x14]
xor edx, edx
div dword [ebx + 0xec]
mov eax, dword [esp + 0x28]
mov dword [eax + edx*4], esi
lea eax, [ebx + 0xf0]
mov dword [ecx], eax
jmp 0x45ac61
call fcn.00471540
mov ecx, eax
mov eax, dword [eax]
mov dword [esp + 4], 4
mov dword [esp], 0x1000
call dword [eax + 8]
push edx
push edx
mov edx, eax
mov eax, dword [ebx + 0x84]
mov dword [edx + 4], 0xff8
lea ecx, [edx + 0x1000]
mov dword [edx], eax
lea eax, [edx + 8]
mov dword [ebx + 0x84], edx
add edx, 0x18
mov dword [ebx + 0x8c], ecx
mov dword [ebx + 0x88], edx
jmp 0x45a940
xor edx, edx
lea ecx, [ebx + 0x100]
mov dword [ebx + 0x100], edx
mov dword [esp + 0x28], ecx
jmp 0x45acff