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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x62b26e
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [edi + 0x8c], 0
jne 0x4530d4
mov esi, dword [ebp + 8]
lea ecx, [edi + 0x24]
push 0x2c
call fcn.0053ac3e
mov edi, eax
mov eax, 0x2c
mov word [edi], ax
mov ecx, dword [esi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x10]
mov dword [edi + 8], ecx
mov ecx, dword [esi + 0x14]
mov dword [edi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [esi + 0x18]
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], 0x65e308
call 0x3db1de
mov dword [edi + 0x14], eax
mov eax, edi
or word [edi + 2], 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x25], 0
je 0x453139
push 0x2c
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov esi, eax
mov eax, 0x2c
mov word [esi], ax
mov ecx, dword [ebx + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 0x10]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], 0x65e308
call 0x3db1de
mov dword [esi + 0x14], eax
mov eax, esi
or word [esi + 2], 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebx + 0x1c]
xor esi, esi
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, ecx
and eax, 0x400000
mov byte [esp + 0x11], 0
or eax, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], ecx
je 0x453170
mov edx, 0x10
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
cmp byte [edi + 0x91], 0
je 0x453184
or edx, 0x20
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
mov eax, ecx
and eax, 0x1000000
or eax, 0
je 0x45319e
or edx, 0xc00
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edx
cmp byte [edi + 0x1f0], 0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], eax
je 0x4531fc
push 1
lea edx, [esp + 0x30]
add ebx, 0xc
push edx
push dword [ebp + 0x14]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [ebp + 8]
push ecx
push esi
push edx
push dword [eax + 0x20]
mov ecx, edi
push dword [esp + 0x38]
push ebx
call 0x5752be
test eax, eax
jne 0x453a82
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x453402
mov ebx, dword [ebp + 8]
lea esi, [edi + 0x1c]
push esi
push ecx
lea ecx, [esp + 0x50]
call 0x3cf62e
mov dword [esp + 0x80], 0
cmp dword [esi], 0
mov dword [esp + 0x70], 0xffffffff
je 0x45326e
push 0x1c
push 0xc
push dword [0x65e8d0]
call dword [0x660170]
mov dword [esp + 0x30], eax
mov byte [esp + 0x80], 1
test eax, eax
je 0x45324d
push dword [esi]
mov ecx, eax
call 0x3ccd4e
jmp 0x45324f
xor eax, eax
mov byte [esp + 0x80], 0
lea ecx, [esp + 0x48]
push eax
call 0x3cf83e
push 0
lea ecx, [esp + 0x4c]
call 0x3cfb3e
mov dword [esi], eax
push 0
lea eax, [esp + 0x17]
mov byte [esp + 0x17], 0
push eax
push dword [ebp + 0x14]
lea eax, [esp + 0x2c]
add ebx, 0xc
push eax
lea eax, [esp + 0x21]
mov ecx, edi
push eax
push ebx
call 0x400b7e
push eax
push dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x34]
push 0
push dword [edi + 0x8c]
push dword [esp + 0x44]
call 0x3fcc8e
mov esi, eax
test esi, esi
je 0x4533d4
cmp byte [edi + 0x90], 0
je 0x4533d4
mov ecx, dword [ebp + 0x10]
push 0
push 0x100000
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040125e
test al, al
jne 0x4533d4
push dword [esp + 0x18]
call fcn.004745de
test al, al
jne 0x4533d4
mov ecx, esi
call 0x3db01e
test al, al
je 0x45331f
mov ecx, edi
call fcn.005127ee
test al, al
je 0x45331f
push 2
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0040125e
test al, al
jne 0x4533cb
cmp byte [esp + 0x11], 0
je 0x4533d4
mov ecx, esi
call 0x3fbafe
mov ecx, eax
call 0x3dd2de
test al, al
jne 0x4533d4
mov byte [esp + 0x12], al
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x30], eax
test eax, eax
je 0x45339b
push 0x1c
push 0xc
push dword [0x65e8d0]
call dword [0x660170]
mov dword [esp + 0x34], eax
mov byte [esp + 0x80], 2
test eax, eax
je 0x45337c
push dword [esp + 0x4c]
mov ecx, eax
call 0x3ccd4e
jmp 0x45337e
xor eax, eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x80], 0
lea ecx, [esp + 0x48]
push eax
call 0x3cf83e
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x1c], eax
lea eax, [esp + 0x12]
mov ecx, edi
push eax
call 0x400b7e
push eax
push dword [esp + 0x24]
mov ecx, edi
push dword [esp + 0x20]
push ebx
push dword [esp + 0x34]
push esi
call 0x3fc4be
cmp byte [esp + 0x12], 0
mov eax, dword [esp + 0x30]
mov dword [edi + 0x1c], eax
je 0x4533d4
mov byte [esp + 0x11], 0
xor esi, esi
jmp 0x4533e5
cmp dword [edi + 0x1c], 0
je 0x4533e5
push 0
lea ecx, [esp + 0x4c]
call 0x3cf79e
lea ecx, [esp + 0x48]
call 0x3cf8be
mov dword [esp + 0x80], 0xffffffff
lea ecx, [esp + 0x48]
call 0x3cf6de
cmp byte [esp + 0x11], 0
je 0x453464
push 0x2c
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov esi, eax
mov eax, 0x2c
mov word [esi], ax
mov ecx, dword [ebx]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], 0x65e308
call 0x3db1de
mov dword [esi + 0x14], eax
mov eax, esi
or word [esi + 2], 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0xc]
and eax, 0x20
or eax, 0
je 0x4534d7
test esi, esi
je 0x4534df
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 0x80
je 0x4534d7
mov eax, dword [esi + 0x5c]
and eax, 7
cmp al, 5
jne 0x4534d7
cmp dword [edi + 0x14c], 0
je 0x4534d7
push 0
push 0
push dword [ebp + 0x14]
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
lea eax, [esp + 0x21]
push eax
push ebx
call 0x400b7e
push eax
push dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x34]
push 0
call 0x3fb60e
push eax
push dword [esp + 0x44]
mov ecx, edi
call 0x3fcc8e
cmp byte [esp + 0x11], 0
mov esi, eax
jne 0x453a7a
test esi, esi
jne 0x453655
cmp byte [edi + 0x91], 0
je 0x45357d
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
mov dword [esp + 0x30], eax
test eax, eax
jne 0x45352c
push ebx
push 0x65e308
push 0x2c
mov ecx, edi
call fcn.0042861e
mov esi, eax
or word [esi + 2], 1
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x24
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov esi, eax
mov eax, 0x54
mov word [esi], ax
mov eax, dword [ebx]
mov dword [esi + 4], eax
mov eax, dword [ebx + 4]
mov dword [esi + 8], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0xc]
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x1c], ecx
call 0x3db1de
mov dword [esi + 0x14], eax
mov eax, esi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp byte [edi + 0x90], 0
mov esi, dword [ebp + 0x10]
je 0x453754
push 0
push 0x100000
push esi
push dword [ebp + 0xc]
call fcn.0040125e
test al, al
jne 0x453754
push dword [esp + 0x18]
call fcn.004745de
test al, al
jne 0x453754
cmp byte [edi + 0x109], al
jne 0x4535da
mov ecx, edi
call fcn.005127ee
test al, al
je 0x4535de
push 2
push 0
push esi
push dword [ebp + 0xc]
call fcn.0040125e
test al, al
je 0x4535de
mov eax, ebx
jmp 0x4535e0
xor eax, eax
sub esp, 0xc
mov ecx, edi
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x20]
push dword [eax + 0x1c]
call fcn.00472d3e
mov esi, eax
mov dword [esp + 0x30], esi
test esi, esi
je 0x453655
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 4
jne 0x453628
push 0x425f38
lea ecx, [esp + 0x3c]
call 0x3c4c2e
push 0x651bb0
lea eax, [esp + 0x3c]
push eax
call 0x5a4c84
mov ecx, dword [edi + 0x14c]
test ecx, ecx
je 0x453708
call 0x40050e
test al, al
je 0x453708
mov ecx, dword [edi + 0x14c]
lea edx, [edi + 0x6c]
call fcn.0042142e
mov dword [esp + 0x20], eax
push 0
push 0x100
push dword [ebp + 0x10]
mov dword [esp + 0x28], 0
push dword [ebp + 0xc]
mov byte [esp + 0x28], 0
call fcn.0040125e
test al, al
jne 0x4536c5
mov ecx, esi
call 0x3db01e
test al, al
je 0x4536c5
mov ecx, esi
call 0x3c4c8e
test al, al
je 0x453a6a
lea eax, [esp + 0x18]
mov ecx, esi
push eax
call 0x3c4cce
push eax
mov ecx, edi
call fcn.0047359e
mov dword [esp + 0x1c], eax
test eax, eax
je 0x453a6a
mov eax, dword [ebp + 0xc]
or eax, 0x100
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
mov ecx, esi
call 0x3db44e
test al, al
jne 0x4536d9
cmp byte [esi], 0x14
jne 0x453a23
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 0x80
je 0x453a23
mov eax, dword [esi + 0x5c]
and al, 7
cmp al, 4
je 0x453a23
test byte [esi + 1], 1
jne 0x453991
xor ecx, ecx
jmp 0x453994
mov ecx, edi
call 0x400b7e
test eax, eax
je 0x453655
mov ecx, edi
call 0x400b7e
mov ecx, eax
call fcn.0041f34e
test al, al
je 0x453747
mov ecx, edi
call 0x400b7e
lea edx, [edi + 0x6c]
mov ecx, eax
call fcn.0042142e
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], eax
jmp 0x453655
mov dword [esp + 0x20], 0
jmp 0x453655
push 0
push 0x200
push esi
push dword [ebp + 0xc]
call fcn.0040125e
test al, al
je 0x4537be
push 0x24
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov esi, eax
mov eax, 0x69
mov word [esi], ax
mov ecx, dword [ebx]
mov dword [esi + 4], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 8]
mov dword [esi + 0xc], ecx
mov ecx, 0x65e308
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], 0x65e308
call 0x3db1de
mov dword [esi + 0x14], eax
mov eax, esi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp byte [edi + 0x88], 0
mov esi, dword [esp + 0x18]
je 0x453894
push dword [edi + 0x7c]
mov edx, esi
xor ecx, ecx
push 0
push 0
call 0x3fe47e
test eax, eax
je 0x4537f1
push dword [ebp + 8]
push ebx
push 0x75a2
jmp 0x453a73
cmp byte [edi + 0x88], 0
je 0x453894
cmp dword [ebp + 0x14], 0xffffffff
je 0x453894
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
lea eax, [esp + 0x21]
mov byte [edi + 0x88], 0
push eax
push ebx
mov ecx, edi
call 0x400b7e
push eax
push dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, edi
or eax, 0x40000
push eax
push 0
push dword [edi + 0x8c]
push esi
call 0x3fcc8e
mov ecx, eax
call 0x400dce
mov byte [edi + 0x88], 1
test eax, eax
jne 0x453866
cmp byte [esp + 0x11], al
je 0x453894
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jne 0x45386f
mov ecx, ebx
lea edx, [esp + 0x11]
push edx
push ecx
push dword [edi + 0x1c]
mov edx, eax
push ecx
push dword [ebp + 0x14]
mov ecx, esi
push dword [esp + 0x40]
call fcn.0043e6be
cmp byte [esp + 0x11], 0
jne 0x453a7a
mov eax, dword [esi - 0xc]
movzx eax, word [eax + 0xa]
add eax, 0xffffffc6
cmp eax, 0xa5
ja 0x453972
movzx eax, byte [eax + 0x4cf644]
jmp dword [eax*4 + 0x4cf61c]
movzx eax, byte [edi + 0x1d5]
push dword [ebp + 8]
neg eax
push ebx
sbb eax, eax
and eax, 0x180f
add eax, 0x76f3
push eax
jmp 0x453a73
lea ecx, [esi - 0x20]
test ecx, ecx
je 0x4539c1
mov eax, dword [ebx]
mov edx, dword [ecx]
cmp eax, edx
jg 0x4539c1
jne 0x4539aa
mov eax, dword [ebx + 8]
cmp eax, dword [ecx + 8]
jge 0x4539c1
cmp byte [edi + 0x107], 0
jne 0x4539c1
push esi
push ebx
push 0x7d00
mov ecx, edi
call fcn.0042201e
mov ecx, edi
call fcn.005127ee
test al, al
je 0x453a23
mov eax, dword [edi + 0x94]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x453a23
lea esp, [esp]
cmp dword [eax + 0x18], esi
je 0x4539f0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x4539de
jmp 0x453a23
cmp byte [eax + 0x14], 0
je 0x453a0c
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x453a0c
push ebx
push 0x7904
call 0x3ce4ae
test al, al
jne 0x453a1b
push esi
push esi
push ebx
push 0x7904
mov ecx, edi
call fcn.0042215e
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x14], 1
push dword [esp + 0x24]
mov eax, dword [ebp + 8]
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0
push dword [eax + 0x20]
push esi
push ebx
call fcn.00462a7e
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x453a82
push dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x30]
push ecx
push edx
push eax
push ebx
mov ecx, edi
call fcn.0047377e
test eax, eax
je 0x453a6a
test byte [eax + 2], 1
je 0x453a82
push dword [ebp + 8]
push ebx
push 0x759c
mov ecx, edi
call fcn.00421dde
push ebx
mov ecx, edi
call fcn.0047334e
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14