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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x815420
push ecx
push ebx
push esi
push edi
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x815883
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x30], 0
jne 0x81545c
lea edx, [ebp - 0x14]
mov eax, 0x813594
call fcn.004074d0
jmp 0x815491
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x81547a
lea edx, [ebp - 0x14]
mov eax, 0x81359c
call fcn.004074d0
jmp 0x815491
mov eax, dword [ebp - 4]
cmp word [eax + 0x50], 0
jbe 0x815491
lea edx, [ebp - 0x14]
mov eax, 0x813584
call fcn.004074d0
cmp dword [ebp - 0x14], 0
je 0x8154cd
push 0x40
lea edx, [ebp - 0x24]
mov eax, dword [0x98a420]
mov eax, dword [eax]
call fcn.0047aba8
mov eax, dword [ebp - 0x24]
call fcn.0040513c
push eax
mov eax, dword [ebp - 0x14]
call fcn.0040513c
mov edx, eax
mov eax, dword [0x98a420]
mov eax, dword [eax]
pop ecx
call fcn.0047b1ec
jmp 0x815853
mov eax, dword [ebp - 4]
call fcn.00814058
test al, al
jne 0x81550c
mov eax, 0x81589c
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x28], 0xb
lea eax, [ebp - 0x2c]
push eax
push 0
lea edx, [ebp - 0x30]
mov eax, 0x81358c
call fcn.004074d0
mov ecx, dword [ebp - 0x30]
mov dl, 1
mov eax, dword [0x813100]
call fcn.00410324
call fcn.004045f8
cmp byte [ebp - 5], 0
je 0x815531
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa4], 0
je 0x815531
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa4]
call fcn.008137d0
jmp 0x815539
lea eax, [ebp - 0x1c]
call fcn.00404c7c
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a], 0
mov eax, 0xd8
call fcn.0040ad78
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x81581d
push dword fs:[eax]
mov dword fs:[eax], esp
mov cl, byte [ebp - 5]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
call fcn.00815248
mov eax, dword [ebp - 4]
cmp byte [eax + 0x88], 1
cmc
sbb eax, eax
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0040513c
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x7c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0040513c
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x80], eax
lea ecx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x62]
mov eax, dword [ebp - 4]
call fcn.008158f4
cmp dword [ebp - 0x18], 0
je 0x8155c9
mov eax, dword [ebp - 0x18]
call fcn.0040513c
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x84], eax
cmp byte [ebp - 5], 0
je 0x8155e9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
je 0x8155e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
call fcn.0040513c
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x78], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
call dword [edx + 0x14]
imul eax, eax, 0x68
call fcn.0040ad78
mov ebx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x8c], ebx
xor eax, eax
push ebp
push 0x815800
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x8156d5
inc eax
mov dword [ebp - 0x20], eax
xor esi, esi
cmp byte [ebp - 5], 0
je 0x815686
mov eax, dword [ebp - 4]
test byte [eax + 0xa8], 8
je 0x815686
lea ecx, [ebp - 0x38]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa4]
call fcn.00813bf8
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0x20]
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x3c]
call fcn.0040513c
mov dword [ebx], eax
mov eax, dword [ebp - 0x10]
mov ax, word [eax + 0x4c]
mov word [ebx + 0x14], ax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x1c]
call fcn.0040513c
mov dword [ebx + 0x24], eax
add ebx, 0x68
inc esi
dec dword [ebp - 0x20]
jne 0x815640
mov eax, dword [ebp - 4]
cmp byte [eax + 0x88], 0
je 0x815718
push 0xffff
lea edx, [ebp - 0x44]
xor eax, eax
call fcn.00402e7c
mov eax, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
mov edx, 0x8158b4
call fcn.0040be4c
mov ecx, dword [ebp - 0x40]
mov dl, 1
mov eax, dword [0x41ef28]
call fcn.00424a18
mov edx, dword [ebp - 4]
mov dword [edx + 0x8c], eax
xor eax, eax
push ebp
push 0x8157dd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x70], 0
je 0x815735
cmp byte [ebp - 5], 0
jne 0x815747
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [0x98a8e0]
mov eax, dword [eax]
call eax
mov dword [ebp - 0xc], eax
jmp 0x8157b6
push 0
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x8135ac]
call fcn.00813c70
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x84], ebx
xor eax, eax
push ebp
push 0x8157af
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00477928
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [0x98a8e0]
mov eax, dword [eax]
call eax
mov dword [ebp - 0xc], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8157b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00403e2c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x84], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8157e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x8c]
call fcn.00403e2c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x8c], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81588a
lea eax, [ebp - 0x44]
mov edx, 6
call fcn.00404ca0
lea eax, [ebp - 0x24]
call fcn.00404c7c
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00404ca0
ret