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

Disassembly:
mov eax, 0x1080
call fcn.0046f480
mov eax, dword [esp + 0x1090]
mov edx, dword [esp + 0x1094]
mov ecx, dword [esp + 0x108c]
push ebx
mov ebx, dword [esp + 0x1088]
push ebp
mov ebp, dword [esp + 0x1090]
push esi
xor esi, esi
push edi
xor edi, edi
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], ebx
cmp eax, esi
jne 0x4568d0
cmp ecx, esi
je 0x4568c3
mov dword [ecx], 0x63
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret
mov dword [eax], esi
cmp ecx, esi
je 0x4568d8
mov dword [ecx], esi
cmp edx, esi
jne 0x4568e6
mov eax, 0x10
jmp 0x456ef6
mov dword [edx], esi
mov dword [esp + 0x28], 0x496928
mov dword [esp + 0x2c], 0x496a28
mov dword [esp + 0x30], 0x496b28
mov dword [esp + 0x34], 0x496c68
test ebp, 0xdc038580
je 0x45691a
mov eax, 0x11
jmp 0x456ee7
cmp byte [ebx], 0x28
jne 0x456a6f
jmp 0x456932
xor esi, esi
cmp byte [ebx + edi + 1], 0x2a
jne 0x456a6f
push 5
lea esi, [edi + ebx + 2]
push 0x497ae0
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456963
add edi, 7
or ebp, 0x800
jmp 0x456a63
push 4
push 0x497ae8
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456985
add edi, 6
or ebp, 0x20000000
jmp 0x456a63
push 3
push 0x497af0
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x4569ac
add edi, 5
mov eax, 0x100000
and ebp, 0xff8fffff
jmp 0x456a61
push 3
push 0x497af4
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x4569d3
add edi, 5
mov eax, 0x200000
and ebp, 0xff8fffff
jmp 0x456a61
push 5
push 0x497af8
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x4569f7
add edi, 7
mov eax, 0x300000
and ebp, 0xff8fffff
jmp 0x456a61
push 4
push 0x497b00
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456a1b
add edi, 6
mov eax, 0x400000
and ebp, 0xff8fffff
jmp 0x456a61
push 8
push 0x497b08
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456a3f
add edi, 0xa
mov eax, 0x500000
and ebp, 0xff8fffff
jmp 0x456a61
push 0xc
push 0x497b14
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456a81
add edi, 0xe
mov eax, 0x800000
and ebp, 0xfe7fffff
or ebp, eax
cmp byte [edi + ebx], 0x28
je 0x456930
xor esi, esi
test ebp, 0x800
je 0x456a9f
mov eax, 0x20
jmp 0x456ee7
push 0xc
push 0x497b24
push esi
call fcn.004629c1
add esp, 0xc
test eax, eax
jne 0x456a6d
add edi, 0xe
mov eax, 0x1000000
jmp 0x456a5b
test ebp, 0x20000000
je 0x456ab1
mov eax, 0x43
jmp 0x456ee7
mov eax, ebp
and eax, 0x1800000
je 0x456ad2
cmp eax, 0x800000
je 0x456ad2
cmp eax, 0x1000000
je 0x456ad2
mov eax, 0x38
jmp 0x456ee7
mov eax, ebp
and eax, 0x700000
mov ecx, 2
cmp eax, 0x300000
jg 0x456b36
je 0x456b2f
cmp eax, esi
je 0x456b2f
cmp eax, 0x100000
je 0x456b28
cmp eax, 0x200000
jne 0x456b44
mov eax, 0xa
mov dword [esp + 0x80], esi
cmp eax, 0xff
jle 0x456b64
mov dword [esp + 0x84], ecx
mov ecx, eax
sar ecx, 8
mov byte [esp + 0x88], cl
mov byte [esp + 0x89], al
jmp 0x456b76
mov eax, 0xd
jmp 0x456afe
mov eax, 0xd0a
jmp 0x456afe
cmp eax, 0x400000
je 0x456b57
cmp eax, 0x500000
je 0x456b4e
mov eax, 0x38
jmp 0x456ee7
mov dword [esp + 0x80], ecx
jmp 0x456b76
mov dword [esp + 0x80], 1
jmp 0x456b76
mov dword [esp + 0x84], 1
mov byte [esp + 0x88], al
lea edx, [esp + 0x90]
mov eax, edx
mov dword [esp + 0x3c], eax
mov ecx, edx
mov eax, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456bb2
sub eax, edx
add eax, ebx
lea edx, [esp + 0x90]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], eax
xor eax, eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
push eax
push eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x44]
push edx
mov eax, ebp
and eax, 7
push eax
lea esi, [edi + ebx]
push ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x4c], esi
mov byte [esp + 0xc4], 0x5e
call fcn.00455eb0
mov eax, dword [esp + 0x44]
add esp, 0x34
test eax, eax
jne 0x456ee7
mov ebp, dword [esp + 0x14]
cmp ebp, 0x10000
jle 0x456c4e
mov eax, 0x14
jmp 0x456ee7
mov ecx, dword [esp + 0x58]
add ecx, 3
imul ecx, dword [esp + 0x54]
lea ebx, [ecx + ebp + 0x28]
push ebx
call dword [0x49d2d0]
mov edi, eax
add esp, 4
test edi, edi
jne 0x456c76
lea eax, [edi + 0x15]
jmp 0x456ee0
mov dword [edi + 4], ebx
mov dword [edi], 0x50435245
mov edx, dword [esp + 0x6c]
mov dword [edi + 8], edx
movzx eax, word [esp + 0x70]
mov word [edi + 0xc], ax
xor edx, edx
mov dword [edi + 0x14], edx
xor ecx, ecx
mov word [edi + 0xe], cx
mov ecx, 0x28
mov word [edi + 0x18], cx
movzx edx, word [esp + 0x58]
mov word [edi + 0x1a], dx
movzx eax, word [esp + 0x54]
xor ecx, ecx
mov word [edi + 0x1c], ax
mov word [edi + 0x1e], cx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
movzx eax, word [edi + 0x18]
push ecx
add eax, edi
mov dword [esp + 0x54], eax
movzx edx, word [edi + 0x1a]
movzx ebx, word [edi + 0x1c]
imul ebx, edx
lea edx, [esp + 0x2c]
push edx
push ecx
lea edx, [esp + 0x2c]
push edx
lea edx, [esp + 0x34]
push edx
push ecx
push ecx
push ecx
add ebx, eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x68], ecx
lea eax, [esp + 0xb0]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x30]
push ecx
mov byte [ebx], 0x5e
mov eax, dword [edi + 8]
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x44]
mov edx, eax
push ecx
and edx, 7
push edx
push eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
call fcn.00455eb0
movzx eax, word [esp + 0x90]
mov word [edi + 0x10], ax
mov cx, word [esp + 0x98]
mov word [edi + 0x12], cx
movzx edx, word [esp + 0xa4]
add esp, 0x34
mov word [edi + 0xc], dx
cmp dword [esp + 0x78], 0
je 0x456d83
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x10], 0
jne 0x456d9b
mov eax, dword [esp + 0x18]
cmp byte [eax], 0
je 0x456d9b
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
inc eax
sub eax, ebx
cmp eax, ebp
jle 0x456db3
mov dword [esp + 0x10], 0x17
jmp 0x456e30
cmp dword [esp + 0x10], 0
jne 0x456e30
lea ebx, [ebx]
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x90]
cmp eax, ecx
jbe 0x456e1e
sub eax, 2
mov dword [esp + 0x4c], eax
movzx edx, byte [eax]
movzx ebp, byte [eax + 1]
shl edx, 8
or ebp, edx
movzx esi, byte [ebx + ebp]
movzx eax, byte [ebx + ebp + 1]
shl esi, 8
or esi, eax
mov eax, ebx
call fcn.00451a60
test eax, eax
je 0x456e14
mov ecx, eax
sub ecx, ebx
sar ecx, 8
sub al, bl
mov byte [ebx + ebp], cl
mov byte [ebx + ebp + 1], al
cmp dword [esp + 0x10], 0
je 0x456dc0
jmp 0x456e30
mov dword [esp + 0x10], 0x35
jmp 0x456e30
mov dx, word [edi + 0x12]
cmp dx, word [edi + 0x10]
jbe 0x456e30
mov dword [esp + 0x10], 0xf
cmp dword [esp + 0x7c], 0
je 0x456ecb
or esi, 0xffffffff
mov eax, ebx
call fcn.00451a60
mov esi, eax
test esi, esi
je 0x456ecb
nop
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
jne 0x456ea7
movzx edx, byte [esi - 2]
movzx eax, byte [esi - 1]
shl edx, 8
or edx, eax
movzx ecx, byte [edx + esi - 3]
lea ebp, [edx + esi - 3]
lea edx, [esp + 0x28]
push edx
mov byte [ebp], 0
mov eax, dword [edi + 8]
push 1
push eax
push esi
mov dword [esp + 0x24], ecx
call fcn.004517b0
mov cl, byte [esp + 0x24]
add esp, 0x10
mov byte [ebp], cl
test eax, eax
js 0x456eba
mov edx, eax
sar edx, 8
mov byte [esi + 1], dl
mov byte [esi + 2], al
lea eax, [esi + 3]
or esi, 0xffffffff
call fcn.00451a60
mov esi, eax
test esi, esi
jne 0x456e50
jmp 0x456ecb
sub eax, 0xfffffffe
neg eax
sbb eax, eax
and eax, 0xfffffff5
add eax, 0x24
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x456f3b
push edi
call dword [0x49d2d4]
mov eax, dword [esp + 0x14]
add esp, 4
mov ebx, dword [esp + 0x1094]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10a4]
sub ecx, ebx
mov dword [edx], ecx
mov esi, eax
mov ecx, 0x496fc0
test eax, eax
jle 0x456f18
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x456f01
cmp byte [ecx], dl
je 0x456f13
dec esi
test esi, esi
jg 0x456f01
jmp 0x456f18
mov ecx, 0x497aa8
mov edx, dword [esp + 0x10a0]
mov dword [edx], ecx
mov ecx, dword [esp + 0x109c]
test ecx, ecx
je 0x456f2e
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret
mov eax, dword [edi + 8]
test al, 0x10
jne 0x456fc6
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
push eax
push 0
lea ecx, [esp + 0x1c]
push ecx
push ebx
call fcn.00456290
add esp, 0x10
test eax, eax
je 0x456f69
or dword [edi + 8], 0x10
jmp 0x456fc6
mov eax, dword [esp + 0x24]
test eax, eax
jns 0x456f85
push 0
lea edx, [esp + 0x18]
push edx
push ebx
call fcn.004566a0
add esp, 0xc
test eax, eax
js 0x456fad
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x456fa2
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x456fa2
mov eax, ecx
or word [edi + 0xc], 2
mov word [edi + 0x14], ax
jmp 0x456fc6
mov eax, dword [esp + 0x68]
push eax
push 0
push ebx
call fcn.00456430
add esp, 0xc
test eax, eax
je 0x456fc6
or word [edi + 0xc], 8
mov eax, dword [esp + 0x20]
test eax, eax
js 0x457004
test byte [edi + 8], 0x10
je 0x456fdb
test eax, 0x200
je 0x457004
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x456ffb
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x456ffb
and eax, 0xfffffeff
or word [edi + 0xc], 4
mov word [edi + 0x16], ax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1080
ret