Function at 0x45b6b0
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 0x45b6f5
call fcn.0043cd60
mov edi, eax
mov dword [esi + 0xc], eax
mov dword [esp + 0x2c], edi
cmp edi, ebx
je 0x45b6f5
push 0x87
call fcn.0043cec0
add esp, 4
cmp dword [esp + 0x7c], ebx
jge 0x45b743
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov eax, dword [esp + 0x70]
movzx ebp, byte [eax + 0x18]
jg 0x45b71b
call fcn.0043cde0
test eax, eax
je 0x45b71b
mov esi, 1
jmp 0x45b73f
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 0x45bbe7
mov esi, dword [esp + 0x14]
test esi, esi
je 0x45b7af
cmp byte [esi + 0x1e], 0
je 0x45b769
xor ebp, ebp
jmp 0x45b8a2
cmp byte [esi + 0xea], 0
je 0x45b7af
mov ecx, 0x31
cmp cx, word [esi + 0xe8]
ja 0x45b7af
mov ebp, dword [esi + 0xf4]
test ebp, ebp
je 0x45b7af
mov edx, dword [ebp]
inc dword [esi + 0xec]
mov eax, dword [esi + 0xec]
cmp eax, dword [esi + 0xf0]
mov dword [esi + 0xf4], edx
jle 0x45b80a
mov dword [esi + 0xf0], eax
jmp 0x45b80a
cmp dword [0x4d3620], 0
je 0x45b7eb
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45b7cb
push eax
call dword [0x4d3668]
add esp, 4
lea ebx, [esp + 0x20]
mov eax, 0x31
call fcn.004235b0
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45b7fa
push eax
call dword [0x4d3670]
jmp 0x45b7f7
push 0x31
call dword [0x4d3638]
mov dword [esp + 0x24], eax
add esp, 4
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x45b812
test esi, esi
je 0x45b80a
mov byte [esi + 0x1e], 1
test ebp, ebp
je 0x45b8a2
push 0x31
push 0
push ebp
call fcn.004957a0
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.00498400
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 0x45b897
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 0x45b871
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.00453660
add esp, 4
mov dword [ebp + 0x14], eax
jmp 0x45b8a2
mov ecx, dword [esp + 0x78]
mov dword [ebp + 0x18], ecx
mov byte [ebp + 1], 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x45b8b3
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
jmp 0x45b8ba
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 0x45b8ed
cmp byte [ecx], 0
mov eax, ecx
je 0x45b8de
inc eax
cmp byte [eax], 0
jne 0x45b8d8
sub eax, ecx
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x45b8f3
xor ebx, ebx
mov dword [esp + 0x24], ebx
lea edi, [ebx + 0x31]
test esi, esi
je 0x45b949
cmp byte [esi + 0x1e], 0
je 0x45b907
xor esi, esi
jmp 0x45ba12
cmp byte [esi + 0xea], 0
je 0x45b949
movzx edx, word [esi + 0xe8]
cmp edi, edx
jg 0x45b949
mov eax, dword [esi + 0xf4]
test eax, eax
je 0x45b949
mov ecx, dword [eax]
inc dword [esi + 0xec]
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0xec]
cmp ecx, dword [esi + 0xf0]
jle 0x45b9a6
mov dword [esi + 0xf0], ecx
jmp 0x45b9a6
lea edx, [edi - 1]
cmp edx, 0x7ffffefe
ja 0x45b9e7
cmp dword [0x4d3620], 0
je 0x45b9d7
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45b974
push eax
call dword [0x4d3668]
add esp, 4
lea ebx, [esp + 0x1c]
mov eax, edi
call fcn.004235b0
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45b992
push eax
call dword [0x4d3670]
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x45b9a2
test esi, esi
je 0x45b9a2
mov byte [esi + 0x1e], 1
mov ebx, dword [esp + 0x24]
mov esi, eax
test esi, esi
je 0x45ba12
push edi
push 0
push esi
call fcn.004957a0
or eax, 0xffffffff
mov word [esi + 0x1e], ax
lea eax, [ebx + 1]
add esp, 0xc
mov byte [esi], 0x1a
test eax, eax
jne 0x45b9ef
mov ecx, 0x400
or word [esi + 2], cx
mov dword [esi + 4], eax
jmp 0x45ba0b
push edi
call dword [0x4d3638]
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x45b992
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x45b99a
mov edx, dword [esp + 0x34]
push ebx
lea eax, [esi + 0x30]
push edx
push eax
mov dword [esi + 4], eax
call fcn.00498400
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 0x45ba6e
cmp byte [edi + 0x1e], 0
je 0x45ba29
xor edi, edi
jmp 0x45baed
cmp byte [edi + 0xea], 0
je 0x45ba6e
mov edx, 0x30
cmp dx, word [edi + 0xe8]
ja 0x45ba6e
mov eax, dword [edi + 0xf4]
test eax, eax
je 0x45ba6e
mov ecx, dword [eax]
inc dword [edi + 0xec]
mov dword [edi + 0xf4], ecx
mov ecx, dword [edi + 0xec]
cmp ecx, dword [edi + 0xf0]
jle 0x45bac9
mov dword [edi + 0xf0], ecx
jmp 0x45bac9
cmp dword [0x4d3620], 0
je 0x45baaa
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45ba8a
push eax
call dword [0x4d3668]
add esp, 4
lea ebx, [esp + 0x28]
mov eax, 0x30
call fcn.004235b0
mov eax, dword [0x4d58f8]
test eax, eax
je 0x45bab9
push eax
call dword [0x4d3670]
jmp 0x45bab6
push 0x30
call dword [0x4d3638]
mov dword [esp + 0x2c], eax
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x45bac9
test edi, edi
je 0x45bac9
mov byte [edi + 0x1e], 1
mov edi, eax
test edi, edi
je 0x45baed
push 0x30
push 0
push edi
call fcn.004957a0
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 0x45bb0a
push ebp
push ebx
call fcn.0044a1a0
push esi
push ebx
call fcn.0044a1a0
add esp, 0x10
jmp 0x45bb4d
test esi, esi
je 0x45bb28
mov ecx, 0x100
mov dword [edi + 0xc], esi
test word [esi + 2], cx
je 0x45bb28
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
test ebp, ebp
je 0x45bb46
mov ecx, 0x100
mov dword [edi + 8], ebp
test word [ebp + 2], cx
je 0x45bb46
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x14], eax
mov ebx, edi
call fcn.00449bb0
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x45bb5b
mov dword [esp + 0x10], edi
jmp 0x45bbd1
test edi, edi
je 0x45bbd1
mov ebx, dword [esp + 0x14]
mov ecx, 0x30
mov esi, ebx
call fcn.00423c10
mov esi, eax
test esi, esi
je 0x45bd07
push 0x30
push 0
push esi
call fcn.004957a0
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 0x45bbb1
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 0x45bbc6
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.00449bb0
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 0x45b754
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
cmp eax, dword [ecx]
jne 0x45bd76
cmp dword [esp + 0x7c], 0
jle 0x45bd76
mov esi, dword [esp + 0x14]
mov ecx, 0x31
call fcn.00423c10
mov ebx, eax
test ebx, ebx
je 0x45bc4d
push 0x31
push 0
push ebx
call fcn.004957a0
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.00498400
mov eax, dword [ebx + 4]
mov byte [eax], 0
add esp, 0xc
mov dword [ebx + 0x2c], 1
mov ecx, 0x31
call fcn.00423c10
mov edi, eax
test edi, edi
je 0x45bc94
push 0x31
push 0
push edi
call fcn.004957a0
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.00498400
mov edx, dword [edi + 4]
mov byte [edx], 0
add esp, 0xc
mov dword [edi + 0x2c], 1
test ebx, ebx
je 0x45bcb8
test edi, edi
je 0x45bcb8
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.00423c10
mov esi, eax
test esi, esi
je 0x45bced
push 0x30
push 0
push esi
call fcn.004957a0
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 0x45bd1d
push ebx
push ebp
call fcn.0044a1a0
push edi
push ebp
call fcn.0044a1a0
add esp, 0x10
jmp 0x45bd60
push ebp
push ebx
call fcn.0044a1a0
push edi
push ebx
call fcn.0044a1a0
add esp, 0x10
jmp 0x45bbcd
test edi, edi
je 0x45bd3b
mov edx, 0x100
mov dword [esi + 0xc], edi
test word [edi + 2], dx
je 0x45bd3b
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebx, ebx
je 0x45bd59
mov edx, 0x100
mov dword [esi + 8], ebx
test word [ebx + 2], dx
je 0x45bd59
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.00449bb0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push esi
push edx
call fcn.00449e70
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.004495f0
mov eax, dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
push eax
push ebp
push edi
call fcn.00475f30
add esp, 0x14
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x60], eax
jle 0x45bdf2
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x18], bl
jne 0x45bdf2
mov eax, dword [edi + 0x1a8]
cmp eax, ebx
je 0x45bdeb
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 0x45be0f
call fcn.0043cde0
test eax, eax
jne 0x45be37
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 0x45be48
push eax
call fcn.00476bd0
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.0044a1a0
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, ebx
je 0x45be73
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x45be73
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