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

Disassembly:
mov eax, 0x1078
call fcn.00426e10
mov eax, dword [esp + 0x1084]
mov ecx, dword [esp + 0x1088]
push ebx
mov ebx, dword [esp + 0x1084]
push ebp
mov ebp, dword [esp + 0x1084]
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
cmp eax, edi
je 0x4592fb
mov dword [eax], edi
cmp ecx, edi
jne 0x458cc4
mov dword [esp + 0x10], 0x10
jmp 0x4592e5
mov dword [ecx], edi
test ebx, 0x800
je 0x458cfb
test ebx, 0x2000
jne 0x458cfb
push 0xffffffffffffffff
push ebp
call fcn.004347b1
mov ecx, dword [esp + 0x10a0]
add esp, 8
cmp eax, edi
mov dword [ecx], eax
jl 0x458cfb
mov dword [esp + 0x10], 0x2c
jmp 0x4592e5
test ebx, 0xfc038580
je 0x458d10
mov dword [esp + 0x10], 0x11
jmp 0x4592d6
mov dword [esp + 0x28], 0x480cc8
mov dword [esp + 0x2c], 0x480dc8
mov dword [esp + 0x30], 0x480ec8
mov dword [esp + 0x34], 0x481008
cmp byte [ebp], 0x28
jne 0x458e68
nop
cmp byte [esi + ebp + 1], 0x2a
jne 0x458e68
push 3
lea eax, [esi + ebp + 2]
push 0x4871c4
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458d71
add esi, 5
mov eax, 0x100000
and ebx, 0xff8fffff
jmp 0x458e5c
push 3
lea eax, [esi + ebp + 2]
push 0x4871c8
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458d9c
add esi, 5
mov eax, 0x200000
and ebx, 0xff8fffff
jmp 0x458e5c
push 5
lea eax, [esi + ebp + 2]
push 0x4871cc
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458dc7
add esi, 7
mov eax, 0x300000
and ebx, 0xff8fffff
jmp 0x458e5c
push 4
lea eax, [esi + ebp + 2]
push 0x4871d4
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458def
add esi, 6
mov eax, 0x400000
and ebx, 0xff8fffff
jmp 0x458e5c
push 8
lea eax, [esi + ebp + 2]
push 0x4871dc
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458e17
add esi, 0xa
mov eax, 0x500000
and ebx, 0xff8fffff
jmp 0x458e5c
push 0xc
lea eax, [esi + ebp + 2]
push 0x4871e8
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458e36
mov eax, 0x800000
jmp 0x458e53
push 0xc
lea eax, [esi + ebp + 2]
push 0x4871f8
push eax
call fcn.00415ee8
add esp, 0xc
test eax, eax
jne 0x458e68
mov eax, 0x1000000
add esi, 0xe
and ebx, 0xfe7fffff
or ebx, eax
cmp byte [esi + ebp], 0x28
je 0x458d3b
mov eax, ebx
and eax, 0x1800000
je 0x458e8c
cmp eax, 0x800000
je 0x458e8c
cmp eax, 0x1000000
je 0x458e8c
mov dword [esp + 0x10], 0x38
jmp 0x4592d6
mov eax, ebx
and eax, 0x700000
cmp eax, 0x300000
mov ecx, 2
jg 0x458eea
je 0x458ec1
cmp eax, edi
je 0x458eb3
cmp eax, 0x100000
je 0x458eba
cmp eax, 0x200000
jne 0x458e7f
mov eax, 0xa
jmp 0x458ec6
mov eax, 0xd
jmp 0x458ec6
mov eax, 0xd0a
cmp eax, 0xff
mov dword [esp + 0x78], edi
jle 0x458f08
mov edx, eax
sar edx, 8
mov dword [esp + 0x7c], ecx
mov byte [esp + 0x80], dl
mov byte [esp + 0x81], al
jmp 0x458f17
cmp eax, 0x400000
je 0x458efe
cmp eax, 0x500000
jne 0x458e7f
mov dword [esp + 0x78], ecx
jmp 0x458f17
mov dword [esp + 0x78], 1
jmp 0x458f17
mov dword [esp + 0x7c], 1
mov byte [esp + 0x80], al
lea edx, [esp + 0x88]
mov ecx, edx
push ebp
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ebp
call fcn.004157b0
add eax, ebp
mov dword [esp + 0x48], eax
lea eax, [esi + ebp]
mov dword [esp + 0x88], eax
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x30]
push edx
push edi
lea eax, [esp + 0x98]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x38]
push ecx
push edi
push edi
push edi
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x48]
push ecx
mov edx, ebx
and edx, 7
push edx
push ebx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
mov byte [esp + 0xc0], 0x5e
call fcn.00456c25
add esp, 0x38
cmp dword [esp + 0x10], edi
jne 0x4592d6
mov eax, dword [esp + 0x18]
cmp eax, 0x10000
jle 0x458fe6
mov dword [esp + 0x10], 0x14
jmp 0x4592d6
mov ecx, dword [esp + 0x54]
add ecx, 3
imul ecx, dword [esp + 0x50]
lea ebx, [ecx + eax + 0x28]
push ebx
call dword [0x48c650]
mov esi, eax
add esp, 4
cmp esi, edi
jne 0x459013
mov dword [esp + 0x10], 0x15
jmp 0x4592d6
mov dword [esi + 4], ebx
mov dword [esi], 0x50435245
mov edx, dword [esp + 0x68]
mov dword [esi + 8], edx
movzx eax, word [esp + 0x6c]
mov word [esi + 0xc], ax
xor ecx, ecx
mov word [esi + 0xe], cx
xor edx, edx
mov word [esi + 0x14], dx
xor eax, eax
mov word [esi + 0x16], ax
mov ecx, 0x28
mov word [esi + 0x18], cx
movzx edx, word [esp + 0x54]
mov word [esi + 0x1a], dx
movzx eax, word [esp + 0x50]
mov word [esi + 0x1c], ax
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
xor ecx, ecx
mov word [esi + 0x1e], cx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edi
movzx eax, word [esi + 0x18]
add eax, esi
mov dword [esp + 0x4c], eax
movzx ecx, word [esi + 0x1a]
movzx ebx, word [esi + 0x1c]
push edi
imul ebx, ecx
lea ecx, [esp + 0x2c]
push ecx
push edi
lea edx, [esp + 0x94]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x34]
push ecx
push edi
push edi
add ebx, eax
mov eax, dword [esp + 0xa0]
push edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x38], eax
mov byte [ebx], 0x5e
mov eax, dword [esi + 8]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x44]
mov ecx, eax
push edx
and ecx, 7
push ecx
push eax
mov dword [esp + 0x50], ebx
call fcn.00456c25
movzx edx, word [esp + 0x8c]
mov word [esi + 0x10], dx
movzx eax, word [esp + 0x94]
mov word [esi + 0x12], ax
mov cx, word [esp + 0xa0]
add esp, 0x34
mov word [esi + 0xc], cx
cmp dword [esp + 0x74], edi
je 0x459122
mov dword [esp + 0x20], 0xffffffff
cmp dword [esp + 0x10], edi
jne 0x459139
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x459139
mov dword [esp + 0x10], 0x16
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
inc eax
sub eax, ebx
cmp eax, dword [esp + 0x18]
jle 0x459156
mov dword [esp + 0x10], 0x17
jmp 0x4592cc
cmp dword [esp + 0x10], edi
jne 0x4592cc
jmp 0x45916b
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x88]
cmp eax, ecx
jbe 0x4592b6
sub eax, 2
mov dword [esp + 0x48], eax
movzx edx, byte [eax]
movzx edi, byte [eax + 1]
shl edx, 8
or edi, edx
movzx eax, byte [edi + ebx]
movzx ecx, byte [edi + ebx + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [esi + 8]
shr ecx, 0xb
push eax
and ecx, 1
push ecx
push ebx
call fcn.00434dbd
add esp, 0xc
test eax, eax
je 0x4591d3
mov edx, eax
sub edx, ebx
sar edx, 8
sub al, bl
mov byte [edi + ebx], dl
mov byte [edi + ebx + 1], al
cmp dword [esp + 0x10], 0
je 0x45916b
jmp 0x4592cc
mov dword [esp + 0x10], 0x35
jmp 0x4592cc
mov eax, dword [esi + 8]
test al, 0x10
jne 0x45926b
mov edx, dword [esp + 0x64]
push edx
mov dword [esp + 0x1c], eax
push 0
lea eax, [esp + 0x20]
push eax
push ebx
call fcn.00441d12
add esp, 0x10
test eax, eax
je 0x45920e
or dword [esi + 8], 0x10
jmp 0x45926b
mov eax, dword [esp + 0x24]
test eax, eax
jge 0x45922a
push 0
lea ecx, [esp + 0x1c]
push ecx
push ebx
call fcn.00441b44
add esp, 0xc
test eax, eax
jl 0x459252
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x459247
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x459247
mov eax, ecx
or word [esi + 0xc], 2
mov word [esi + 0x14], ax
jmp 0x45926b
mov eax, dword [esp + 0x64]
push eax
push 0
push ebx
call fcn.00441c45
add esp, 0xc
test eax, eax
je 0x45926b
or word [esi + 0xc], 8
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x4592a9
test byte [esi + 8], 0x10
je 0x459280
test eax, 0x200
je 0x4592a9
mov ecx, eax
and ecx, 0xff
test eax, 0x100
je 0x4592a0
mov edx, dword [esp + 0x2c]
movzx edx, byte [edx + ecx]
cmp edx, ecx
jne 0x4592a0
and eax, 0xfffffeff
or word [esi + 0xc], 4
mov word [esi + 0x16], ax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1078
ret
mov ax, word [esi + 0x12]
cmp ax, word [esi + 0x10]
jbe 0x4591e0
mov dword [esp + 0x10], 0xf
push esi
call dword [0x48c654]
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1098]
sub eax, ebp
mov dword [ecx], eax
mov edx, dword [esp + 0x10]
push edx
call fcn.00435946
mov ecx, dword [esp + 0x1098]
add esp, 4
mov dword [ecx], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1078
ret
jmp 0x458c6b