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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43d0a2
mov eax, dword fs:[0]
push eax
sub esp, 0x210
mov eax, dword [0x44d740]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push esi
push edi
mov eax, dword [0x44d740]
xor eax, esp
push eax
lea eax, [esp + 0x220]
mov dword fs:[0], eax
mov dword [esp + 0x18], ecx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x228], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0x228], 2
mov esi, dword [0x43f198]
push 0x446724
call esi
push 0x446738
mov dword [esp + 0x1a0], eax
call esi
push 0x446758
mov dword [esp + 0x1a4], eax
call esi
push 0x44676c
mov dword [esp + 0x1a8], eax
call esi
push 0x446788
mov dword [esp + 0x1ac], eax
call esi
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
test eax, eax
je 0x816209
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [edi + 8]
lea edx, [esp + 0x74]
push edx
mov dword [esp + 0x78], 0
push 0x43f438
mov ecx, dword [eax]
push eax
call dword [ecx]
mov esi, eax
test esi, esi
js 0x816303
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
test eax, eax
je 0x81623f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x78], 0
lea ecx, [esp + 0x78]
mov eax, dword [esi]
push ecx
push esi
call dword [eax + 0x1b0]
mov esi, eax
test esi, esi
js 0x816303
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
test eax, eax
je 0x816271
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x70], 0
lea ecx, [esp + 0x70]
mov eax, dword [esi]
push ecx
push esi
call dword [eax + 0xd4]
mov esi, eax
test esi, esi
js 0x816303
lea ebx, [esp + 0x1c4]
xor edi, edi
mov edi, edi
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x1b0]
add ecx, edi
push ecx
push 0x800
mov edx, dword [eax]
lea ecx, [esp + 0x1a4]
push 1
add ecx, edi
push ecx
push 0x43f378
push eax
call dword [edx + 0x14]
mov esi, eax
test esi, esi
js 0x816303
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x12c]
push 0
push 0
push ebx
mov ecx, dword [eax]
push edx
push 2
push 0x800
push 0x43f378
push dword [esp + edi + 0x1cc]
push eax
call dword [ecx + 0x18]
mov esi, eax
test esi, esi
js 0x816303
add edi, 4
add ebx, 0x10
cmp edi, 0x14
jl 0x816298
mov ebx, dword [0x43f190]
xor edi, edi
push dword [esp + edi*4 + 0x19c]
call ebx
inc edi
cmp edi, 5
jl 0x81630b
test esi, esi
js 0x81687f
push 0xb0
lea eax, [esp + 0x80]
push 0
push eax
call fcn.00830d48
add esp, 0xc
mov dword [esp + 0x7c], 0x4464c8
mov dword [esp + 0x8c], 0x446518
mov byte [esp + 0x228], 3
push 4
mov dword [esp + 0x58], 1
mov dword [esp + 0xe8], 0x446a00
mov dword [esp + 0xe4], 0x50
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0x201
mov dword [esp + 0x100], 6
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0xf4], 0
call fcn.0082c15e
mov esi, eax
add esp, 4
test esi, esi
je 0x816425
push 1
mov dword [esi], 0
call fcn.00827c05
add esp, 4
mov dword [esi], eax
jmp 0x816427
xor esi, esi
lea eax, [esp + 0x94]
mov dword [esp + 0x114], esi
mov dword [esp + 0x11c], eax
lea ecx, [esp + 0xe4]
lea eax, [esp + 0x1c]
mov dword [esp + 0x120], 0
push eax
call fcn.00812cf8
push eax
mov dword [esp + 0x22c], 0xa
call fcn.00823388
mov byte [esp + 0x22c], 5
add esp, 4
mov ecx, dword [esp + 0x1c]
mov esi, eax
test ecx, ecx
je 0x81648f
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x81648f
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi]
mov ecx, esi
push 0x20
call dword [eax + 0x30]
cmp dword [esp + 0x11c], 0
mov word [esp + 0x124], ax
jne 0x8164d5
mov eax, dword [esp + 0xf0]
or eax, 4
and eax, 0x17
mov dword [esp + 0xf0], eax
test dword [esp + 0xf4], eax
je 0x8164d5
push 0
lea ecx, [esp + 0xe8]
call fcn.00812c68
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x8c], 0x44639c
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x88], eax
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x7c], 0x4464a8
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [esp + ecx + 0x78], eax
mov dword [esp + 0x228], 0xd
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x7c], 0x44656c
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0x78], eax
lea ecx, [esp + 0x94]
call fcn.0081f448
mov dword [esp + 0x94], 0x4464d4
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov byte [esp + 0x228], 0xf
lea ecx, [esp + 0x58]
mov edx, dword [esp + 0x20c]
call fcn.00813448
mov edi, eax
mov byte [esp + 0x228], 0x10
lea ecx, [esp + 0x20]
mov edx, dword [esp + 0x1fc]
call fcn.00813448
mov esi, eax
mov byte [esp + 0x228], 0x11
mov edx, 0x4467dc
push dword [esp + 0x1ec]
push ecx
push dword [esp + 0x1e4]
push ecx
push dword [esp + 0x1dc]
push ecx
lea ecx, [esp + 0xa4]
call fcn.00823878
add esp, 4
mov ecx, eax
call fcn.0081b768
mov edx, 0x4467cc
mov ecx, eax
call fcn.00823878
add esp, 4
mov ecx, eax
call fcn.0081b768
mov edx, 0x4467bc
mov ecx, eax
call fcn.00823878
add esp, 4
mov ecx, eax
call fcn.0081b768
mov edx, 0x4467a8
mov ecx, eax
call fcn.00823878
mov edx, esi
mov ecx, eax
call fcn.00823b58
mov edx, 0x44679c
mov ecx, eax
call fcn.00823878
mov edx, edi
mov ecx, eax
call fcn.00823b58
cmp dword [esp + 0x34], 8
jb 0x816648
push dword [esp + 0x20]
call fcn.0082c10e
add esp, 4
xor eax, eax
mov byte [esp + 0x228], 0xf
cmp dword [esp + 0x6c], 8
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], 0
mov word [esp + 0x20], ax
jb 0x81667a
push dword [esp + 0x58]
call fcn.0082c10e
add esp, 4
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x40], 0
je 0x816850
push 0x60
lea eax, [esp + 0x140]
push 0
push eax
call fcn.00830d48
add esp, 0xc
mov dword [esp + 0x34], 7
xor eax, eax
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x20]
mov word [esp + 0x20], ax
push eax
push 0x445e4c
call fcn.00809db8
sub esp, 0x18
mov byte [esp + 0x240], 0x12
mov ecx, esp
mov dword [esp + 0x34], esp
xor eax, eax
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x445e4c
mov word [ecx], ax
call fcn.00809db8
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x70]
mov byte [esp + 0x240], 0x14
push eax
lea ecx, [esp + 0x98]
call fcn.0081b6e8
mov byte [esp + 0x240], 0x15
push dword [esi + 0x44]
lea ecx, [esp + 0x54]
mov byte [esp + 0x244], 0x17
push ecx
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x48]
push eax
push 3
lea ecx, [esp + 0x16c]
call fcn.008195a8
cmp dword [esp + 0x6c], 8
jb 0x816763
push dword [esp + 0x58]
call fcn.0082c10e
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], 7
mov dword [esp + 0x68], 0
mov word [esp + 0x58], ax
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x8167c3
mov edi, dword [esp + 0x3c]
mov esi, ebx
cmp ebx, edi
je 0x8167b6
cmp dword [esi + 0x14], 8
jb 0x81679c
push dword [esi]
call fcn.0082c10e
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, edi
jne 0x81678c
push ebx
call fcn.0082c10e
mov esi, dword [esp + 0x1c]
add esp, 4
mov byte [esp + 0x228], 0x1b
cmp dword [esp + 0x34], 8
jb 0x8167de
push dword [esp + 0x20]
call fcn.0082c10e
add esp, 4
xor eax, eax
mov dword [esp + 0x34], 7
mov word [esp + 0x20], ax
lea ecx, [esp + 0x13c]
lea eax, [esp + 0x38]
mov dword [esp + 0x30], 0
push eax
call fcn.00819698
push eax
mov byte [esp + 0x22c], 0x1c
mov ecx, dword [esi + 0xd8]
push 0xb
call fcn.00818bc8
cmp dword [esp + 0x4c], 0x10
jb 0x81682f
push dword [esp + 0x38]
call fcn.0082c10e
add esp, 4
lea ecx, [esp + 0x13c]
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
call fcn.008118d8
lea ecx, [esp + 0xe4]
mov byte [esp + 0x228], 2
call fcn.0081b668
lea eax, [esp + 0xe4]
mov dword [esp + 0xe4], 0x446564
push eax
call fcn.00827e22
add esp, 4
mov eax, dword [esp + 0x50]
mov ecx, 0xb
mov byte [esp + 0x228], 1
mov word [eax], cx
or ecx, 0xffffffff
mov word [eax + 8], cx
mov eax, dword [esp + 0x70]
test eax, eax
je 0x8168a8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [esp + 0x228], 0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x8168be
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x228], 0xffffffff
mov eax, dword [esp + 0x74]
test eax, eax
je 0x8168d7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [esp + 0x220]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.0082b950
mov esp, ebp
pop ebp
ret 8