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

Disassembly:
push 0xffffffffffffffff
push 0x451b6b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x84
mov eax, dword [0x483944]
push ebx
push ebp
push esi
mov dword [esp + 0x8c], eax
mov eax, dword [0x489bc4]
push edi
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], edi
mov byte [esp + 0x5c], 0
push 0xa
push 0xcf
push eax
mov dword [esp + 0xa8], edi
mov ebx, eax
xor ebp, ebp
call dword [fcn.00456088]
mov esi, eax
cmp esi, edi
je 0x40f023
push esi
push ebx
call dword [fcn.0045607c]
push esi
push ebx
call dword [fcn.00456084]
cmp eax, edi
je 0x40f023
push eax
call dword [fcn.00456080]
mov ebp, eax
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40f028
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x60]
call fcn.00408600
cmp dword [0x484944], edi
jne 0x40f069
mov al, byte [0x484948]
test al, al
je 0x40f052
jmp 0x40bac0
call fcn.00403610
push 0x40b2c0
mov dword [0x484944], eax
call fcn.00445909
add esp, 4
mov esi, dword [0x484944]
push 7
mov ebx, 0xf
push 0x4564e0
lea ecx, [esp + 0x44]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
call fcn.00408600
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x44]
push eax
lea ecx, [esi + 0x54]
mov byte [esp + 0xa8], 1
call fcn.00403750
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esi + 0x70]
call fcn.00403750
mov eax, dword [esp + 0x54]
mov ebp, 0x10
cmp eax, ebp
mov byte [esp + 0x9c], 0
jb 0x40f0db
mov edx, dword [esp + 0x40]
push edx
call fcn.00445550
add esp, 4
mov ecx, esi
call fcn.0040c8a0
test al, al
jne 0x40f148
push edi
push 0x4566bc
lea ecx, [esp + 0x44]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], al
call fcn.00408600
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0xa0], 2
call fcn.0040edb0
add esp, 4
mov bl, al
mov eax, dword [esp + 0x54]
neg bl
sbb bl, bl
inc bl
cmp eax, ebp
mov byte [esp + 0x9c], 0
jb 0x40f13b
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00445550
add esp, 4
test bl, bl
jne 0x40f207
mov ebx, 0xf
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
push ebp
push 0x4564d0
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
mov byte [esp + 0xa8], 3
call fcn.0040e0c0
test al, al
jne 0x40f21b
push edi
push 0x4566bc
lea ecx, [esp + 0x44]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], al
call fcn.00408600
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0xa0], 4
call fcn.0040edb0
add esp, 4
mov bl, al
mov eax, dword [esp + 0x54]
neg bl
sbb bl, bl
inc bl
cmp eax, ebp
mov byte [esp + 0x9c], 3
jb 0x40f1e1
mov eax, dword [esp + 0x40]
push eax
call fcn.00445550
add esp, 4
test bl, bl
je 0x40f21b
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x70], ebp
jb 0x40f552
mov edx, dword [esp + 0x5c]
push edx
jmp 0x40f54a
mov eax, dword [esp + 0x1c]
mov ebp, dword [0x4563dc]
push eax
call ebp
movzx eax, ax
and al, 1
mov byte [esp + 0x13], al
jne 0x40f296
push edi
push 0x4566bc
lea ecx, [esp + 0x44]
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], edi
mov byte [esp + 0x48], 0
call fcn.00408600
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0xa0], 6
call fcn.0040edb0
add esp, 4
mov bl, al
mov eax, dword [esp + 0x54]
neg bl
sbb bl, bl
inc bl
cmp eax, 0x10
mov byte [esp + 0x9c], 3
jb 0x40f28e
mov edx, dword [esp + 0x40]
push edx
call fcn.00445550
add esp, 4
test bl, bl
jne 0x40f4bf
lea edx, [esp + 0x14]
push edx
call fcn.004467c2
mov eax, dword [esp + 0x20]
add esp, 4
push eax
call ebp
movzx eax, ax
shr eax, 1
and al, 1
mov byte [esp + 0x13], al
je 0x40f3a9
mov ecx, dword [esp + 0x2e]
push ecx
call ebp
mov edx, dword [esp + 0x1c]
movzx edi, ax
push edx
imul edi, edi, 0x15180
call ebp
movzx eax, ax
test al, 0x10
je 0x40f2e6
mov eax, dword [esp + 0x34]
push eax
call dword [0x4563d8]
add edi, eax
cmp dword [esp + 0x14], edi
jge 0x40f3a7
lea ecx, [esp + 0x74]
push ecx
call fcn.0040d150
xor ebx, ebx
push ebx
push 0x96
lea edx, [esp + 0x48]
push ebx
push edx
mov byte [esp + 0xb0], 0xb
call fcn.0040bbf0
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x8c]
mov esi, 0x10
add esp, 0x14
cmp eax, esi
jae 0x40f333
lea ecx, [esp + 0x78]
cmp dword [esp + 0x54], esi
mov eax, dword [esp + 0x40]
jae 0x40f341
lea eax, [esp + 0x40]
push 0x40
push ecx
push eax
push ebx
call dword [0x4562f4]
cmp dword [esp + 0x54], esi
jb 0x40f35f
mov eax, dword [esp + 0x40]
push eax
call fcn.00445550
add esp, 4
cmp dword [esp + 0x8c], esi
mov edi, 0xf
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], 0
jb 0x40f387
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00445550
add esp, 4
mov eax, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], 0
cmp eax, esi
jmp 0x40f523
xor edi, edi
mov ecx, dword [esp + 0x1c]
push ecx
call ebp
movzx eax, ax
shr eax, 2
and al, 1
mov byte [esp + 0x13], al
je 0x40f447
lea ecx, [esp + 0x1c]
call fcn.0040c5a0
cmp dword [esp + 0x14], eax
jle 0x40f447
mov ecx, esi
call fcn.004029c0
mov ecx, esi
call fcn.0040c7d0
push edi
push 0x97
lea edx, [esp + 0x44]
push edi
push edx
call fcn.0040bbf0
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0xb0], 0xd
call fcn.0040edb0
add esp, 0x14
test al, al
lea ecx, [esp + 0x3c]
jne 0x40f442
call fcn.00402de0
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x58]
call fcn.00402de0
jmp 0x40f552
call fcn.00402de0
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
lea edx, [esp + 0x1e]
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0xa0], 0xe
call fcn.00437720
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x40]
push ecx
push edx
call fcn.0040e5f0
add esp, 0xc
test al, al
jne 0x40f4ef
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.00402800
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0x1c]
call fcn.00402800
push 0xffffffffffffffff
push edi
lea ecx, [esi + 0x38]
call fcn.00402800
mov ecx, esi
call fcn.0040c7d0
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x40f4bf
push eax
call fcn.00445550
add esp, 4
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
cmp dword [esp + 0x70], 0x10
jb 0x40f552
mov ecx, dword [esp + 0x5c]
push ecx
jmp 0x40f54a
mov esi, dword [esp + 0x78]
cmp esi, edi
jne 0x40f4fb
xor eax, eax
jmp 0x40f501
mov eax, dword [esp + 0x7c]
sub eax, esi
push 1
push eax
push esi
call fcn.0040d1f0
add esp, 0xc
cmp esi, edi
je 0x40f51a
push esi
call fcn.00445550
add esp, 4
mov eax, dword [esp + 0x70]
xor edx, edx
cmp eax, 0x10
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edx
jb 0x40f552
mov eax, dword [esp + 0x5c]
push eax
call fcn.00445550
add esp, 4
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x84]
pop ebx
call fcn.00445586
add esp, 0x90
ret