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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
add esp, 0xffffff38
mov esi, esp
mov eax, dword [ebp + 8]
mov ecx, eax
mov edx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov ebx, dword [0x80a094]
mov dword [esi + 0xbc], eax
mov eax, dword [0x80a090]
call fcn.0045fae0
mov eax, ebx
sub eax, 1
imul ebx, eax
and ebx, 1
cmp ebx, 0
sete al
mov ebx, dword [esi + 0xb8]
cmp ebx, 0xa
setl ah
or al, ah
test al, 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], ecx
call fcn.0045faf0
jne 0x45f31d
jmp 0x45f9fc
pushfd
mov eax, 0x11c5aa5f
xor eax, 0x11c5aa5b
popfd
mov dword [esi + 0xa8], eax
call fcn.004487b0
mov eax, esp
call fcn.0045fb00
mov dword [esi + 0xa4], eax
mov eax, 0x2000
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, 0x18
call fcn.0045fb10
mov eax, ecx
mov dword [esi + 0x9c], ecx
call fcn.004487b0
mov eax, 0x447ad4
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
call fcn.0045fb20
mov dword [esi + 0x98], eax
mov eax, 4
mov eax, ecx
call fcn.004487b0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xa8]
call fcn.0045fb30
mov eax, ecx
call fcn.004487b0
mov eax, esp
call fcn.0045fb40
mov dword [esi + 0x90], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, 0x104
mov dword [esi + 0x8c], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x88], eax
mov eax, ecx
call fcn.004487b0
mov ecx, eax
mov eax, esp
mov ecx, dword [esi + 0x9c]
mov dword [esi + 0x84], eax
mov eax, ecx
call fcn.004487b0
mov eax, 0x447ba0
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x80], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
call fcn.0045fb50
mov dword [esi + 0x7c], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
call fcn.0045fb60
call fcn.0045fb70
call fcn.0045fb80
mov edi, dword [esi + 0xa0]
mov ebx, dword [esi + 0xb4]
mov dword [edi], ebx
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x78], eax
call fcn.004d2100
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov edi, ecx
add edi, 0xffffffff
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete cl
cmp edx, 0xa
setl ch
or cl, ch
test cl, 1
call fcn.0045fb90
jne 0x45f498
jmp 0x45f9fc
mov ecx, dword [esi + 0x94]
call fcn.004d2100
call fcn.0045fba0
call fcn.0045fbb0
cmp dword [eax], 0
jne 0x45f58e
sub esp, 8
mov eax, 0xf
mov eax, esp
mov ecx, dword [esi + 0x88]
call fcn.0045fbc0
mov dword [eax], 0x104
call fcn.0045fbd0
call eax
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x6c]
push ecx
mov ecx, 0x2e1d8b32
xor ecx, 0x2e1d8b32
cmp eax, ecx
pop ecx
je 0x45f519
sub esp, 4
mov eax, esi
mov eax, esp
mov ecx, dword [esi + 0x88]
mov dword [eax], ecx
call fcn.0045fbe0
call fcn.00477890
call fcn.0045fbf0
jmp 0x45f519
mov ecx, dword [esi + 0x98]
call fcn.0052df00
mov ecx, 1
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esi + 0x64], ecx
call fcn.004600d0
add esp, 8
mov byte [esi + 0x63], al
mov al, byte [esi + 0x63]
test al, 1
jne 0x45f589
jmp 0x45f555
call fcn.0045fc00
cmp dword [eax], 0
je 0x45f589
call fcn.0045fc10
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
call fcn.0045fc20
call fcn.0045fc30
call fcn.00477890
mov dword [esi + 0x5c], eax
jmp 0x45f589
jmp 0x45f5b2
mov eax, dword [esi + 0xa0]
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
call fcn.0045fc40
call fcn.0045fc50
call fcn.00477890
mov dword [esi + 0x58], eax
jmp 0x45f5b2
call fcn.0045fc60
call fcn.004e2f90
test al, 1
jne 0x45f667
mov ecx, dword [esi + 0x98]
call fcn.00410a80
add eax, 0xffffffff
sub esp, 4
mov ecx, 0x447c78
mov ecx, esp
call fcn.0045fc70
mov ecx, dword [esi + 0x98]
call fcn.00477900
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
movsx ecx, byte [eax]
push ebx
mov ebx, 0xdb310683
xor ebx, 0xdb3106df
cmp ecx, ebx
pop ebx
je 0x45f667
call fcn.0045fc80
call fcn.00410a80
sub eax, 1
sub esp, 4
mov ecx, esp
mov dword [ecx], eax
call fcn.0045fc90
call fcn.00477900
call fcn.0045fca0
mov eax, dword [esi + 0x50]
movsx ecx, byte [eax]
cmp ecx, 0x2f
je 0x45f667
sub esp, 8
mov eax, esp
call fcn.0045fcb0
mov dword [eax], 1
mov ecx, dword [esi + 0x98]
call fcn.004104a0
mov dword [esi + 0x4c], eax
jmp 0x45f667
call fcn.0045fcc0
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
push edx
mov edx, 0x9aa7207d
xor edx, 0x9aa72077
cmp ecx, edx
pop edx
setl bh
or bl, bh
test bl, 1
jne 0x45f6ac
jmp 0x45fa6b
call fcn.0045fcd0
mov dword [eax], 0
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
push ebx
mov ebx, 0x2ecfdc54
xor ebx, 0x2ecfdc5e
cmp edx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x45f6ff
jmp 0x45fa6b
jmp 0x45f704
mov eax, dword [esi + 0x84]
cmp dword [eax], 0x200
jge 0x45f9c2
call fcn.00449380
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
and eax, 0xffff
shl eax, 0x10
mov dword [esi + 0x44], eax
call fcn.00449380
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x44]
call fcn.0045fce0
or eax, ecx
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x3c], eax
call fcn.0052df00
lea ecx, [0x7f9ac0]
sub esp, 0x10
mov edx, dword [esi + 0x80]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0045fcf0
mov dword [esp + 0xc], eax
call fcn.004b1870
add esp, 0x10
mov eax, dword [0x80a094]
call fcn.0045fd00
mov edx, eax
sub edx, 1
imul eax, edx
and eax, 1
push ecx
mov ecx, 0x928e26f
xor ecx, 0x928e26f
cmp eax, ecx
pop ecx
sete bl
push ebx
mov ebx, 0x5ff8fc55
xor ebx, 0x5ff8fc5f
cmp ecx, ebx
pop ebx
setl bh
or bl, bh
test bl, 1
jne 0x45f7c5
jmp 0x45fa7a
sub esp, 4
mov eax, 8
mov eax, esp
mov ecx, dword [esi + 0x80]
call fcn.0045fd10
mov ecx, dword [esi + 0x94]
call fcn.00507510
mov ecx, dword [esi + 0x80]
mov dword [esi + 0x38], eax
call fcn.00506f10
mov ecx, dword [esi + 0x94]
call fcn.0052df00
mov ecx, dword [0x80a094]
call fcn.0045fd20
mov edi, ecx
sub edi, 1
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
call fcn.0045fd30
jne 0x45f841
jmp 0x45fa7a
sub esp, 4
mov eax, dword [esi + 0x34]
mov dword [esp], eax
call fcn.00460360
add esp, 4
mov byte [esi + 0x33], al
cmp dword [0x7fff58], 0
je 0x45f8bb
mov eax, dword [0x7fecbc]
call fcn.0045fd40
mov dword [esi + 0x2c], eax
call fcn.0052df00
sub esp, 0x1c
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x14], 0x80
mov dword [ecx + 0x10], 1
call fcn.0045fd50
mov dword [ecx + 8], 0
call fcn.0045fd60
call fcn.0045fd70
call eax
call fcn.0045fd80
mov eax, dword [esi + 0x28]
mov dword [esi + 0x24], eax
jmp 0x45f8c8
mov eax, 0xffffffff
mov dword [esi + 0x24], eax
jmp 0x45f8c8
mov eax, dword [esi + 0x24]
mov ecx, 0x56ec84
mov ecx, dword [ecx]
call fcn.0045fd90
mov dword [edx], eax
cmp dword [edx], ecx
je 0x45f921
mov eax, dword [esi + 0x7c]
mov ecx, dword [eax]
sub esp, 4
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ecx
mov dword [esi + 0x20], eax
sub esp, 4
mov eax, esp
mov ecx, dword [esi + 0x94]
mov dword [eax], ecx
mov ecx, dword [esi + 0xbc]
call fcn.00410ad0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x78]
mov dword [eax], 1
jmp 0x45f9d9
jmp 0x45f926
mov eax, dword [0x80a094]
mov ecx, dword [0x80a090]
mov edx, eax
add edx, 0xffffffff
imul eax, edx
and eax, 1
push edx
mov edx, 0xe8891373
xor edx, 0xe8891373
cmp eax, edx
pop edx
sete bl
cmp ecx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x45f96c
jmp 0x45fab8
call fcn.0045fda0
call fcn.0045fdb0
add ecx, 1
mov dword [eax], ecx
mov ecx, dword [0x80a094]
mov edx, dword [0x80a090]
mov edi, ecx
add edi, 0xffffffff
imul ecx, edi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
or bl, bh
test bl, 1
jne 0x45f9bd
jmp 0x45fab8
jmp 0x45f704
mov ecx, dword [esi + 0xbc]
call fcn.004d2100
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x78]
mov dword [eax], 1
call fcn.0045fdc0
call fcn.00506f10
mov ecx, dword [esi + 0x98]
call fcn.00506f10
mov eax, dword [esi + 0xb0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 4
call fcn.0045fdd0
call fcn.004487b0
mov eax, esp
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
mov eax, ecx
call fcn.004487b0
mov eax, esp
mov ecx, 0x18
mov dword [esi + 0xc], eax
mov eax, ecx
call fcn.004487b0
mov eax, 0x447b1c
mov eax, esp
and eax, 0xfffffff8
mov edx, 0x1fff
mov esp, eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0xac]
call fcn.0045fde0
call fcn.0045fdf0
mov ebx, dword [esi + 0xb4]
mov dword [edi], ebx
mov ecx, 0x447c48
mov ecx, eax
call fcn.004d2100
mov dword [esi + 8], eax
jmp 0x45f31d
call fcn.0045fe00
call fcn.0045fe10
jmp 0x45f6ac
sub esp, 4
mov ecx, 0xf
mov eax, esp
call fcn.0045fe20
mov dword [eax], ecx
mov ecx, dword [esi + 0x94]
call fcn.00507510
mov ecx, dword [esi + 0x80]
call fcn.0045fe30
call fcn.00506f10
mov ecx, dword [esi + 0x94]
call fcn.0052df00
mov dword [esi], eax
jmp 0x45f7c5
mov eax, dword [esi + 0x84]
call fcn.0045fe40
add ecx, 1
call fcn.0045fe50
jmp 0x45f96c