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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 4]
cmp eax, 0x17
je 0x77e699
cmp eax, 0x18
je 0x77e3d1
xor eax, eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x30], 6
mov edx, 0xd
mov dword [esp + 0x3c], 7
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
and eax, 0x100
mov dword [esp + 0x34], eax
jne 0x77e6e1
mov eax, dword [esp + 0xa4]
mov ecx, 9
lea edi, [esp + 0x5c]
mov esi, dword [eax]
mov ebp, dword [eax + 8]
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0x20], esi
cmp edx, esi
jg 0x77e3c3
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], 0
xor edi, edi
add eax, eax
mov dword [esp + 0x28], eax
movzx eax, byte [esp + 0x34]
xor eax, 1
mov byte [esp + 0x2c], al
lea esi, [esi]
nop
movsx eax, byte [ebp + edi]
mov dword [esp], eax
call fcn.006c4341
test eax, eax
je 0x77e3c3
movsx ebx, byte [ebp + edi]
lea eax, [edi + 1]
sub ebx, 0x30
cmp dword [esp + 0x20], eax
je 0x77e3c3
movsx eax, byte [ebp + edi + 1]
mov dword [esp], eax
call fcn.006c4341
test eax, eax
je 0x77e3c3
movsx eax, byte [ebp + edi + 1]
lea edx, [ebx + ebx*4]
lea esi, [edi + 2]
lea eax, [eax + edx*2]
lea ecx, [eax - 0x30]
cmp dword [esp + 0x20], esi
je 0x77e3c3
mov ebx, dword [esp + 0xa4]
xor edx, edx
mov ebx, dword [ebx + 4]
cmp ebx, 0x17
mov dword [esp + 0x24], ebx
sete dl
add edx, dword [esp + 0x1c]
cmp dword [edx*4 + 0x9dfe20], ecx
jg 0x77e3c3
cmp dword [edx*4 + 0x9dfde0], ecx
jl 0x77e3c3
cmp edx, 6
ja 0x77e4e7
jmp dword [edx*4 + 0x9dfca0]
add dword [esp + 0x1c], 1
movzx eax, byte [ebp + esi]
cmp esi, dword [esp + 0x28]
je 0x77e7a9
cmp byte [esp + 0x2c], 0
je 0x77e523
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x30], ecx
jne 0x77e523
lea edx, [eax - 0x2b]
and edx, 0xfd
je 0x77e7a9
cmp al, 0x5a
je 0x77e7a9
mov edi, esi
jmp 0x77e449
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x30], 5
mov edx, 0xb
mov dword [esp + 0x3c], 6
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
and eax, 0x100
mov dword [esp + 0x34], eax
je 0x77e403
mov dword [esp + 0x34], 1
mov edx, 0xd
jmp 0x77e403
mov dword [esp + 0x34], 1
mov edx, 0xf
jmp 0x77e403
mov ebx, dword [esp + 0x24]
cmp ebx, 0x18
je 0x77e971
cmp al, 0x5a
je 0x77e9e1
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x77e3c3
lea edx, [eax - 0x2b]
and edx, 0xfd
jne 0x77e3c3
cmp al, 0x2d
sete al
movzx eax, al
lea eax, [eax + eax - 1]
mov dword [esp + 0x24], eax
lea eax, [esi + 5]
cmp eax, dword [esp + 0x20]
jne 0x77e3c3
lea ebx, [esi + 1]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x2c], 0
lea eax, [esi + 1]
mov dword [esp + 0x28], eax
lea eax, [esi + 2]
mov dword [esp + 0x1c], eax
mov eax, esi
mov esi, ebp
mov ebp, eax
movsx eax, byte [esi + ebx]
mov dword [esp], eax
call fcn.006c4341
test eax, eax
je 0x77e3c3
movsx eax, byte [esi + ebx + 1]
movsx edi, byte [esi + ebx]
mov dword [esp], eax
sub edi, 0x30
call fcn.006c4341
test eax, eax
je 0x77e3c3
movsx eax, byte [esi + ebx + 1]
lea ecx, [edi + edi*4]
lea ecx, [eax + ecx*2 - 0x30]
mov eax, dword [esp + 0xa4]
cmp dword [eax + 4], 0x17
sete al
movzx eax, al
add eax, ebp
cmp dword [eax*4 + 0x9dfe20], ecx
jg 0x77e3c3
cmp dword [eax*4 + 0x9dfde0], ecx
jl 0x77e3c3
mov edi, dword [esp + 0xa0]
test edi, edi
je 0x77e8a1
cmp dword [esp + 0x3c], ebp
je 0x77e9f2
cmp dword [esp + 0x28], ebp
je 0x77ea01
add ebx, 2
add ebp, 1
cmp ebp, dword [esp + 0x1c]
jne 0x77e819
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x77e8e1
imul eax, dword [esp + 0x24]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
lea eax, [esp + 0x5c]
mov dword [esp], eax
call fcn.007f07b1
test eax, eax
je 0x77e3c3
lea esi, [esi]
cmp ebx, dword [esp + 0x20]
jne 0x77e3c3
mov edx, dword [esp + 0xa0]
mov eax, 1
test edx, edx
je 0x77e3c5
mov edi, dword [esp + 0xa0]
mov edx, dword [esp + 0x5c]
mov dword [edi], edx
mov edx, dword [esp + 0x60]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x64]
mov dword [edi + 8], edx
mov edx, dword [esp + 0x68]
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x6c]
mov dword [edi + 0x10], edx
mov edx, dword [esp + 0x70]
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x74]
mov dword [edi + 0x18], edx
mov edx, dword [esp + 0x78]
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x7c]
mov dword [edi + 0x20], edx
jmp 0x77e3c5
cmp al, 0x2e
jne 0x77e7b6
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x77e3c3
mov eax, dword [esp + 0x20]
lea ebx, [edi + 3]
cmp eax, ebx
je 0x77e3c3
mov esi, ebx
mov edi, eax
cmp eax, ebx
jg 0x77e9ac
jmp 0x77e3c3
add esi, 1
cmp edi, esi
je 0x77e3c3
movsx eax, byte [ebp + esi]
mov dword [esp], eax
call fcn.006c4341
test eax, eax
jne 0x77e9a1
cmp dword [esp + 0x20], esi
je 0x77e3c3
cmp ebx, esi
je 0x77e3c3
movzx eax, byte [ebp + esi]
cmp al, 0x5a
jne 0x77e7ca
lea esi, [esi]
nop
lea ebx, [esi + 1]
jmp 0x77e8e1
imul eax, ecx, 0xe10
mov dword [esp + 0x2c], eax
jmp 0x77e8a1
imul ecx, ecx, 0x3c
add dword [esp + 0x2c], ecx
jmp 0x77e8a1