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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
mov eax, dword [esi]
xor ebx, ebx
push edi
mov edi, dword [esi + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
cmp edi, ebx
jne 0x458c55
call fcn.0043a280
mov edi, eax
mov dword [esi + 0xc], eax
mov dword [esp + 0x2c], edi
cmp edi, ebx
je 0x458c55
push 0x87
call fcn.0043a3e0
add esp, 4
cmp dword [esp + 0x7c], ebx
jge 0x458ca3
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov eax, dword [esp + 0x70]
movzx ebp, byte [eax + 0x18]
jg 0x458c7b
call fcn.0043a300
test eax, eax
je 0x458c7b
mov esi, 1
jmp 0x458c9f
mov edx, dword [edi + 0x14]
inc dword [edi + 0xc]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov byte [eax], 0x6f
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x14], ebx
mov dword [esp + 0x18], ebx
jle 0x459147
mov esi, dword [esp + 0x14]
test esi, esi
je 0x458d0f
cmp byte [esi + 0x1e], 0
je 0x458cc9
xor ebp, ebp
jmp 0x458e02
cmp byte [esi + 0xea], 0
je 0x458d0f
mov ecx, 0x31
cmp cx, word [esi + 0xe8]
ja 0x458d0f
mov ebp, dword [esi + 0xf4]
test ebp, ebp
je 0x458d0f
mov edx, dword [ebp]
inc dword [esi + 0xec]
mov eax, dword [esi + 0xec]
cmp eax, dword [esi + 0xf0]
mov dword [esi + 0xf4], edx
jle 0x458d6a
mov dword [esi + 0xf0], eax
jmp 0x458d6a
cmp dword [0x4e41f0], 0
je 0x458d4b
mov eax, dword [0x4e8430]
test eax, eax
je 0x458d2b
push eax
call dword [0x4e4238]
add esp, 4
lea ebx, [esp + 0x20]
mov eax, 0x31
call fcn.004203d0
mov eax, dword [0x4e8430]
test eax, eax
je 0x458d5a
push eax
call dword [0x4e4240]
jmp 0x458d57
push 0x31
call dword [0x4e4208]
mov dword [esp + 0x24], eax
add esp, 4
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x458d72
test esi, esi
je 0x458d6a
mov byte [esi + 0x1e], 1
test ebp, ebp
je 0x458e02
push 0x31
push 0
push ebp
call fcn.004a2540
add esp, 0xc
or eax, 0xffffffff
push 0
mov word [ebp + 0x1e], ax
lea eax, [ebp + 0x30]
push 0
push eax
mov byte [ebp], 0x84
mov dword [ebp + 4], eax
call fcn.004a44a0
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x78]
add esp, 0xc
mov byte [ecx], 0
mov dword [ebp + 0x2c], 1
test eax, eax
je 0x458df7
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x68]
mov edi, dword [edx + 0xc]
lea ecx, [eax + eax*2]
lea ecx, [edi + ecx*8]
cmp dword [edx + 4], eax
jne 0x458dd1
or eax, 0xffffffff
mov edx, dword [esp + 0x78]
lea eax, [eax + edx + 1]
mov dword [ebp + 0x18], eax
mov dl, byte [ecx + 0x16]
mov eax, dword [esp + 0x60]
mov byte [ebp + 1], dl
push eax
mov eax, dword [ecx + 0x10]
call fcn.00450bf0
add esp, 4
mov dword [ebp + 0x14], eax
jmp 0x458e02
mov ecx, dword [esp + 0x78]
mov dword [ebp + 0x18], ecx
mov byte [ebp + 1], 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x458e13
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
jmp 0x458e1a
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x458e4d
cmp byte [ecx], 0
mov eax, ecx
je 0x458e3e
inc eax
cmp byte [eax], 0
jne 0x458e38
sub eax, ecx
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x458e53
xor ebx, ebx
mov dword [esp + 0x24], ebx
lea edi, [ebx + 0x31]
test esi, esi
je 0x458ea9
cmp byte [esi + 0x1e], 0
je 0x458e67
xor esi, esi
jmp 0x458f72
cmp byte [esi + 0xea], 0
je 0x458ea9
movzx edx, word [esi + 0xe8]
cmp edi, edx
jg 0x458ea9
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x458ea9
mov ecx, dword [eax]
inc dword [esi + 0xec]
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0xec]
cmp ecx, dword [esi + 0xf0]
jle 0x458f06
mov dword [esi + 0xf0], ecx
jmp 0x458f06
lea edx, [edi - 1]
cmp edx, 0x7ffffefe
ja 0x458f47
cmp dword [0x4e41f0], 0
je 0x458f37
mov eax, dword [0x4e8430]
test eax, eax
je 0x458ed4
push eax
call dword [0x4e4238]
add esp, 4
lea ebx, [esp + 0x1c]
mov eax, edi
call fcn.004203d0
mov eax, dword [0x4e8430]
test eax, eax
je 0x458ef2
push eax
call dword [0x4e4240]
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x458f02
test esi, esi
je 0x458f02
mov byte [esi + 0x1e], 1
mov ebx, dword [esp + 0x24]
mov esi, eax
test esi, esi
je 0x458f72
push edi
push 0
push esi
call fcn.004a2540
or eax, 0xffffffff
mov word [esi + 0x1e], ax
lea eax, [ebx + 1]
add esp, 0xc
mov byte [esi], 0x1a
test eax, eax
jne 0x458f4f
mov ecx, 0x400
or word [esi + 2], cx
mov dword [esi + 4], eax
jmp 0x458f6b
push edi
call dword [0x4e4208]
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x458ef2
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x458efa
mov edx, dword [esp + 0x34]
push ebx
lea eax, [esi + 0x30]
push edx
push eax
mov dword [esi + 4], eax
call fcn.004a44a0
mov eax, dword [esi + 4]
add esp, 0xc
mov byte [ebx + eax], 0
mov dword [esi + 0x2c], 1
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx]
test edi, edi
je 0x458fce
cmp byte [edi + 0x1e], 0
je 0x458f89
xor edi, edi
jmp 0x45904d
cmp byte [edi + 0xea], 0
je 0x458fce
mov edx, 0x30
cmp dx, word [edi + 0xe8]
ja 0x458fce
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x458fce
mov ecx, dword [eax]
inc dword [edi + 0xec]
mov dword [edi + 0xf4], ecx
mov ecx, dword [edi + 0xec]
cmp ecx, dword [edi + 0xf0]
jle 0x459029
mov dword [edi + 0xf0], ecx
jmp 0x459029
cmp dword [0x4e41f0], 0
je 0x45900a
mov eax, dword [0x4e8430]
test eax, eax
je 0x458fea
push eax
call dword [0x4e4238]
add esp, 4
lea ebx, [esp + 0x28]
mov eax, 0x30
call fcn.004203d0
mov eax, dword [0x4e8430]
test eax, eax
je 0x459019
push eax
call dword [0x4e4240]
jmp 0x459016
push 0x30
call dword [0x4e4208]
mov dword [esp + 0x2c], eax
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x459029
test edi, edi
je 0x459029
mov byte [edi + 0x1e], 1
mov edi, eax
test edi, edi
je 0x45904d
push 0x30
push 0
push edi
call fcn.004a2540
add esp, 0xc
or edx, 0xffffffff
mov byte [edi], 0x4c
mov word [edi + 0x1e], dx
mov dword [edi + 0x2c], 1
mov eax, dword [esp + 0x60]
mov ebx, dword [eax]
test edi, edi
jne 0x45906a
push ebp
push ebx
call fcn.00447530
push esi
push ebx
call fcn.00447530
add esp, 0x10
jmp 0x4590ad
test esi, esi
je 0x459088
mov ecx, 0x100
mov dword [edi + 0xc], esi
test word [esi + 2], cx
je 0x459088
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
test ebp, ebp
je 0x4590a6
mov ecx, 0x100
mov dword [edi + 8], ebp
test word [ebp + 2], cx
je 0x4590a6
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x14], eax
mov ebx, edi
call fcn.00446f40
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x4590bb
mov dword [esp + 0x10], edi
jmp 0x459131
test edi, edi
je 0x459131
mov ebx, dword [esp + 0x14]
mov ecx, 0x30
mov esi, ebx
call fcn.00420a20
mov esi, eax
test esi, esi
je 0x459267
push 0x30
push 0
push esi
call fcn.004a2540
or ecx, 0xffffffff
mov edx, 0x100
add esp, 0xc
mov byte [esi], 0x45
mov word [esi + 0x1e], cx
mov dword [esi + 0x2c], 1
mov dword [esi + 0xc], edi
test word [edi + 2], dx
je 0x459111
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
mov dword [esi + 8], ebp
test word [ebp + 2], dx
je 0x459126
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.00446f40
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x70]
inc eax
cmp eax, dword [edx + 0x14]
mov dword [esp + 0x18], eax
jl 0x458cb4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
cmp eax, dword [ecx]
jne 0x4592d6
cmp dword [esp + 0x7c], 0
jle 0x4592d6
mov esi, dword [esp + 0x14]
mov ecx, 0x31
call fcn.00420a20
mov ebx, eax
test ebx, ebx
je 0x4591ad
push 0x31
push 0
push ebx
call fcn.004a2540
add esp, 0xc
push 0
lea eax, [ebx + 0x30]
or edx, 0xffffffff
push 0
push eax
mov byte [ebx], 0x84
mov word [ebx + 0x1e], dx
mov dword [ebx + 4], eax
call fcn.004a44a0
mov eax, dword [ebx + 4]
mov byte [eax], 0
add esp, 0xc
mov dword [ebx + 0x2c], 1
mov ecx, 0x31
call fcn.00420a20
mov edi, eax
test edi, edi
je 0x4591f4
push 0x31
push 0
push edi
call fcn.004a2540
add esp, 0xc
push 0
lea eax, [edi + 0x30]
or ecx, 0xffffffff
push 0
push eax
mov byte [edi], 0x98
mov word [edi + 0x1e], cx
mov dword [edi + 4], eax
call fcn.004a44a0
mov edx, dword [edi + 4]
mov byte [edx], 0
add esp, 0xc
mov dword [edi + 0x2c], 1
test ebx, ebx
je 0x459218
test edi, edi
je 0x459218
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
mov dword [ebx + 0x18], eax
mov byte [ebx + 1], 0x64
mov edx, dword [ecx + 0x20]
or eax, 0xffffffff
mov dword [edi + 0x18], edx
mov word [edi + 0x1c], ax
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.00420a20
mov esi, eax
test esi, esi
je 0x45924d
push 0x30
push 0
push esi
call fcn.004a2540
add esp, 0xc
or ecx, 0xffffffff
mov byte [esi], 0x4b
mov word [esi + 0x1e], cx
mov dword [esi + 0x2c], 1
mov ebp, dword [ebp]
test esi, esi
jne 0x45927d
push ebx
push ebp
call fcn.00447530
push edi
push ebp
call fcn.00447530
add esp, 0x10
jmp 0x4592c0
push ebp
push ebx
call fcn.00447530
push edi
push ebx
call fcn.00447530
add esp, 0x10
jmp 0x45912d
test edi, edi
je 0x45929b
mov edx, 0x100
mov dword [esi + 0xc], edi
test word [edi + 2], dx
je 0x45929b
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebx, ebx
je 0x4592b9
mov edx, 0x100
mov dword [esi + 8], ebx
test word [ebx + 2], dx
je 0x4592b9
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.00446f40
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push esi
push edx
call fcn.00447200
add esp, 8
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edi
call fcn.00446980
mov eax, dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
push eax
push ebp
push edi
call fcn.004740c0
add esp, 0x14
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x60], eax
jle 0x459352
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x18], bl
jne 0x459352
mov eax, dword [edi + 0x1a8]
cmp eax, ebx
je 0x45934b
mov edi, eax
mov byte [edi + 0x159], 1
mov edi, dword [esp + 0x2c]
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov edx, dword [esp + 0x70]
movzx ebp, byte [edx + 0x18]
jg 0x45936f
call fcn.0043a300
test eax, eax
jne 0x459397
mov ecx, dword [edi + 0x14]
inc dword [edi + 0xc]
mov edx, dword [esp + 0x7c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x6e
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x4593a8
push eax
call fcn.00474d60
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.00447530
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, ebx
je 0x4593d3
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x4593d3
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x14]
mov dword [eax + edx*4 + 8], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret