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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xf0]
cmp eax, dword [ecx + 8]
jbe 0x878fe3
sub esp, 0x170
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
cmp byte [esp + 0x174], 0x18
je 0x878fb4
cmp byte [esp + 0x180], 0x18
je 0x878f9a
lea edi, [esp + 0xbc]
lea esi, [esp + 0x174]
call fcn.004612e2
lea edi, [esp + 0x98]
lea esi, [esp + 0x180]
call fcn.004612e2
movzx ecx, byte [esp + 0x98]
cmp byte [esp + 0xbc], cl
jne 0x878810
movzx ecx, byte [esp + 0x99]
cmp byte [esp + 0xbd], cl
jne 0x878810
movzx ecx, byte [esp + 0x9a]
cmp byte [esp + 0xbe], cl
jne 0x878810
movzx ecx, byte [esp + 0x9b]
cmp byte [esp + 0xbf], cl
jne 0x878810
movzx ecx, byte [esp + 0x9c]
cmp byte [esp + 0xc0], cl
jne 0x878810
movzx ecx, byte [esp + 0x9d]
cmp byte [esp + 0xc1], cl
jne 0x878810
mov ecx, dword [esp + 0xa0]
cmp dword [esp + 0xc4], ecx
je 0x878f80
lea edi, [esp + 0xe0]
lea esi, [esp + 0x174]
call fcn.004612e2
movzx ecx, byte [esp + 0x182]
mov byte [esp + 0xe2], cl
lea edi, [esp + 0x104]
lea esi, [esp + 0xe0]
call fcn.004612e2
lea edi, [esp + 0x74]
lea esi, [esp + 0x180]
call fcn.004612e2
movzx ecx, byte [esp + 0x74]
cmp byte [esp + 0x104], cl
jne 0x8788ba
movzx ecx, byte [esp + 0x75]
cmp byte [esp + 0x105], cl
jne 0x8788ba
movzx ecx, byte [esp + 0x76]
cmp byte [esp + 0x106], cl
jne 0x8788ba
movzx ecx, byte [esp + 0x77]
cmp byte [esp + 0x107], cl
jne 0x8788ba
movzx ecx, byte [esp + 0x78]
cmp byte [esp + 0x108], cl
jne 0x8788ba
movzx ecx, byte [esp + 0x79]
cmp byte [esp + 0x109], cl
jne 0x8788ba
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x10c], ecx
je 0x878f5e
lea edi, [esp + 0xe0]
lea esi, [esp + 0x174]
call fcn.004612e2
movzx ecx, byte [esp + 0x183]
mov byte [esp + 0xe3], cl
lea edi, [esp + 0xc8]
lea esi, [esp + 0xe0]
call fcn.004612e2
lea edi, [esp + 0xa4]
lea esi, [esp + 0x180]
call fcn.004612e2
movzx ecx, byte [esp + 0xa4]
cmp byte [esp + 0xc8], cl
jne 0x87897c
movzx ecx, byte [esp + 0xa5]
cmp byte [esp + 0xc9], cl
jne 0x87897c
movzx ecx, byte [esp + 0xa6]
cmp byte [esp + 0xca], cl
jne 0x87897c
movzx ecx, byte [esp + 0xa7]
cmp byte [esp + 0xcb], cl
jne 0x87897c
movzx ecx, byte [esp + 0xa8]
cmp byte [esp + 0xcc], cl
jne 0x87897c
movzx ecx, byte [esp + 0xa9]
cmp byte [esp + 0xcd], cl
jne 0x87897c
mov ecx, dword [esp + 0xac]
cmp dword [esp + 0xd0], ecx
je 0x878f3c
lea edi, [esp + 0x11c]
lea esi, [esp + 0x174]
call fcn.004612e2
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
movzx ecx, byte [esp + 0x11c]
cmp cl, 1
jne 0x878ee2
mov byte [esp + 0x11c], 2
lea edi, [esp + 0x50]
lea esi, [esp + 0x11c]
call fcn.004612e2
lea edi, [esp + 0xd4]
lea esi, [esp + 0x180]
call fcn.004612e2
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
movzx ecx, byte [esp + 0xd4]
cmp cl, 1
jne 0x878e88
mov byte [esp + 0xd4], 2
lea edi, [esp + 0x5c]
lea esi, [esp + 0xd4]
call fcn.004612e2
lea edi, [esp + 0x134]
lea esi, [esp + 0x50]
call fcn.004612e2
lea edi, [esp + 0x128]
lea esi, [esp + 0x5c]
call fcn.004612e2
lea edi, [esp + 0xf8]
lea esi, [esp + 0x134]
call fcn.004612e2
lea edi, [esp + 0xb0]
lea esi, [esp + 0x128]
call fcn.004612e2
lea edi, [esp + 0xec]
lea esi, [esp + 0xf8]
call fcn.004612e2
lea edi, [esp + 0x80]
lea esi, [esp + 0x174]
call fcn.004612e2
movzx eax, byte [esp + 0x80]
cmp byte [esp + 0xec], al
jne 0x878e81
movzx eax, byte [esp + 0x81]
cmp byte [esp + 0xed], al
jne 0x878e7a
movzx eax, byte [esp + 0x82]
cmp byte [esp + 0xee], al
jne 0x878e73
movzx eax, byte [esp + 0x83]
cmp byte [esp + 0xef], al
jne 0x878e6c
movzx eax, byte [esp + 0x84]
cmp byte [esp + 0xf0], al
jne 0x878e65
movzx eax, byte [esp + 0x85]
cmp byte [esp + 0xf1], al
jne 0x878e5e
mov eax, dword [esp + 0x88]
cmp dword [esp + 0xf4], eax
jne 0x878e57
lea edi, [esp + 0x110]
lea esi, [esp + 0xb0]
call fcn.004612e2
lea edi, [esp + 0x8c]
lea esi, [esp + 0x180]
call fcn.004612e2
movzx eax, byte [esp + 0x8c]
cmp byte [esp + 0x110], al
jne 0x878e50
movzx eax, byte [esp + 0x8d]
cmp byte [esp + 0x111], al
jne 0x878e50
movzx eax, byte [esp + 0x8e]
cmp byte [esp + 0x112], al
jne 0x878e50
movzx eax, byte [esp + 0x8f]
cmp byte [esp + 0x113], al
jne 0x878e50
movzx eax, byte [esp + 0x90]
cmp byte [esp + 0x114], al
jne 0x878e50
movzx eax, byte [esp + 0x91]
cmp byte [esp + 0x115], al
jne 0x878e50
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x118], eax
sete al
test al, al
je 0x878dce
lea edi, [esp + 0x14c]
lea esi, [esp + 0x174]
call fcn.004612e2
lea edi, [esp + 0x140]
lea esi, [esp + 0x180]
call fcn.004612e2
mov eax, dword [esp + 0x194]
mov dword [esp], eax
mov eax, dword [esp + 0x198]
mov dword [esp + 4], eax
call fcn.00409480
mov eax, dword [esp + 8]
mov dword [esp + 0x4c], eax
lea ecx, [0xb563e0]
mov dword [esp], ecx
lea edx, [esp + 0x14c]
mov dword [esp + 4], edx
call fcn.00409290
mov eax, dword [esp + 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], ecx
lea edx, [0xb563e0]
mov dword [esp], edx
lea edx, [esp + 0x140]
mov dword [esp + 4], edx
call fcn.00409290
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], ecx
lea edi, [esp + 0x158]
mov edx, eax
xor eax, eax
call fcn.00460dea
lea eax, [0xaa9660]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x16c], eax
lea eax, [0xbbc223]
mov dword [esp], eax
mov dword [esp + 4], 0x31
lea eax, [esp + 0x158]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call fcn.004eeb30
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
lea edx, [0xb26300]
mov dword [esp], edx
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax], 3
mov ecx, dword [esp + 0x18c]
mov dword [eax + 4], ecx
mov ecx, dword [0x10fd360]
test ecx, ecx
jne 0x878db6
mov ecx, dword [esp + 0x190]
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x1c], ecx
mov ecx, dword [0x10fd360]
test ecx, ecx
jne 0x878da4
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x18], ecx
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
mov byte [esp + 0x19c], 0x18
mov dword [esp + 0x1a4], eax
add esp, 0x170
ret
lea edi, [eax + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x48]
call fcn.00460b40
mov eax, ecx
jmp 0x878d6d
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x190]
call fcn.00460b40
mov eax, ecx
jmp 0x878d40
mov edi, esp
lea esi, [esp + 0xf8]
call fcn.004612e2
lea edi, [esp + 0xc]
lea esi, [esp + 0xb0]
call fcn.004612e2
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x194]
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x198]
mov dword [esp + 0x24], ebx
call fcn.00878710
lea esi, [esp + 0x28]
mov dword [esp + 0x44], esi
lea edi, [esp + 0x68]
call fcn.004612e2
cmp byte [esp + 0x68], 0x18
je 0x878bdf
lea edi, [esp + 0x19c]
mov esi, dword [esp + 0x44]
call fcn.004612e2
add esp, 0x170
ret
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
xor eax, eax
jmp 0x878bd7
cmp cl, 3
jne 0x878ea2
mov byte [esp + 0xd4], 2
mov byte [esp + 0xd8], 0
jmp 0x878a14
cmp cl, 4
jne 0x878a14
movzx eax, byte [esp + 0xd8]
cmp eax, 6
jae 0x878fce
lea ecx, [0x10793a4]
movzx eax, byte [eax + ecx]
mov byte [esp + 0xd4], al
mov byte [esp + 0xd5], 3
mov byte [esp + 0xd8], 0
jmp 0x878a14
cmp cl, 3
jne 0x878efc
mov byte [esp + 0x11c], 2
mov byte [esp + 0x120], 0
jmp 0x8789c0
cmp cl, 4
jne 0x8789c0
movzx eax, byte [esp + 0x120]
cmp eax, 6
jae 0x878fd8
lea ecx, [0x10793a4]
movzx edx, byte [eax + ecx]
mov byte [esp + 0x11c], dl
mov byte [esp + 0x11d], 3
mov byte [esp + 0x120], 0
jmp 0x8789c0
mov byte [esp + 0xe3], 2
lea edi, [esp + 0x19c]
lea esi, [esp + 0xe0]
call fcn.004612e2
add esp, 0x170
ret
mov byte [esp + 0xe2], 3
lea edi, [esp + 0x19c]
lea esi, [esp + 0xe0]
call fcn.004612e2
add esp, 0x170
ret
lea edi, [esp + 0x19c]
lea esi, [esp + 0x174]
call fcn.004612e2
add esp, 0x170
ret
lea edi, [esp + 0x19c]
lea esi, [esp + 0x180]
call fcn.004612e2
add esp, 0x170
ret
lea edi, [esp + 0x19c]
lea esi, [esp + 0x174]
call fcn.004612e2
add esp, 0x170
ret
mov ecx, 6
call fcn.00460bc0
mov ecx, 6
call fcn.00460bc0
nop
call fcn.0045f5f0
jmp fcn.00878710