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

Disassembly:
mov ecx, dword [esp + 0x8c]
movzx edx, byte [edi]
add edi, 1
sub dword [esp + 0x78], 1
test ecx, ecx
je 0x78617c
mov ebx, edx
and ebx, 0xf0
cmp ebx, 0xf0
jne 0x78617c
cmp dword [esp + 0x8c], 1
je 0x786276
movzx edx, byte [edi]
add edi, 1
sub dword [esp + 0x78], 1
mov ebx, edx
and ebx, 0xf0
cmp ebx, 0xf0
je 0x786153
cmp edx, 0xe0
je 0x7861ea
jle 0x78639e
mov eax, edx
movzx ecx, byte [edi]
xor edx, edx
and eax, 0x1f
add edi, 1
sub dword [esp + 0x78], 1
mov ebx, dword [esp + 0x5c]
mov byte [ebx + ebp], cl
add ebx, 1
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x70]
cmp dword [esp + 0x5c], ebx
jl 0x7861c3
mov dword [esp + 0x5c], 0
sub ebp, dword [esp + 0x74]
sub esi, 1
add edx, 1
cmp edx, eax
jle 0x78619c
mov eax, esi
not eax
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x44]
test ebx, ebx
setg dl
shr eax, 0x1f
test eax, edx
jne 0x78612d
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
mov ebp, dword [edx + 0xc]
mov ecx, dword [eax + 0x240]
mov dword [esp + 8], 0x400
mov dword [esp], ebp
add ecx, 4
mov dword [esp + 4], ecx
call fcn.00a5b5c0
mov ebx, dword [esp + 0x94]
mov edi, dword [ebx]
mov eax, dword [edi + 0x240]
mov esi, dword [eax]
test esi, esi
je 0x786238
mov dword [ebx + 0xb8], 1
mov dword [eax], 0
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0xb4]
mov dword [edi], 0xd8
mov dword [esp + 8], 0xd8
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00a5b5c0
mov eax, dword [esp + 0x98]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, edx
and eax, 0xf
mov edx, dword [eax*4 + 0xcb7000]
mov ecx, dword [eax*4 + 0xcb6fc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
movzx edx, byte [edi]
add edi, 1
sub dword [esp + 0x78], 1
mov ebx, edx
sar ebx, 4
cmp ebx, 8
lea ecx, [ebx - 0x10]
cmovl ecx, ebx
and edx, 0xf
lea eax, [edx - 0x10]
cmp edx, 8
mov ebx, edx
cmovge ebx, eax
mov eax, dword [esp + 0x5c]
add eax, ecx
mov dword [esp + 0x48], eax
js 0x786696
mov edx, dword [esp + 0x54]
lea eax, [ecx + edx]
add eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x70]
jg 0x786696
mov edx, esi
sub edx, ebx
cmp edx, dword [esp + 0x50]
js 0x786696
cmp edx, dword [esp + 0x58]
jg 0x786696
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x70]
jg 0x786696
cmp esi, dword [esp + 0x50]
js 0x786696
mov ecx, dword [esp + 0x48]
imul edx, dword [esp + 0x70]
mov dword [esp + 0x60], 0
add ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x50]
add ecx, edx
cmp dword [esp + 0x60], ebx
mov dword [esp + 0x4c], ecx
jge 0x786161
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
xor ebx, ebx
cmp ebx, dword [esp + 0x54]
jge 0x78637a
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
sub eax, dword [esp + 0x38]
sub edx, dword [esp + 0x3c]
lea ecx, [eax + ebp]
movzx eax, byte [edx]
add ebx, 1
add edx, 1
mov byte [ecx], al
add dword [ebx + 0x5c3b01c1], eax
and al, 0x54
add dword [ebx + 0x5c3b01c1], eax
and al, 0x54
jl 0x786366
add dword [esp + 0x60], 1
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x50]
add dword [esp + 0x38], ecx
add dword [esp + 0x3c], ebx
cmp dword [esp + 0x60], edx
jl 0x78634b
jmp 0x786161
cmp edx, 0xbf
jle 0x7863f9
mov ecx, edx
xor edx, edx
and ecx, 0x1f
movzx eax, byte [edi]
mov ebx, dword [esp + 0x5c]
add edi, 1
mov byte [ebx + ebp], al
add ebx, 1
mov eax, dword [esp + 0x70]
mov dword [esp + 0x5c], ebx
cmp ebx, eax
jl 0x7863d8
mov dword [esp + 0x5c], 0
sub ebp, dword [esp + 0x74]
sub esi, 1
add edx, 1
cmp edx, ecx
jle 0x7863ad
mov edx, dword [esp + 0x78]
mov ebx, esi
sub edx, ecx
not ebx
sub edx, 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x78], edx
jmp 0x7861d2
cmp edx, 0x7f
jle 0x786449
mov eax, edx
and eax, 0x3f
je 0x78666d
cmp eax, 1
jne 0x78641a
movzx eax, byte [edi]
add eax, 0x140
add edi, 1
add dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x5c], ecx
jl 0x7861d2
mov ebx, dword [esp + 0x70]
sub ebp, dword [esp + 0x74]
sub dword [esp + 0x5c], ebx
sub esi, 1
js 0x786473
cmp dword [esp + 0x5c], ebx
jge 0x78642d
jmp 0x7861ca
test edx, edx
jne 0x786678
add dword [esp + 0x5c], 1
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x5c], eax
jl 0x7861d2
mov dword [esp + 0x5c], 0
sub ebp, dword [esp + 0x74]
sub esi, 1
mov edx, esi
not edx
mov dword [esp + 0x44], edx
jmp 0x7861d2
movzx eax, byte [edi]
add eax, 0x40
jmp 0x786417
and edx, 0x7f
mov ecx, dword [esp + 0x68]
movzx ebx, byte [ecx + edx]
mov edx, dword [esp + 0x5c]
mov byte [edx + ebp], bl
add edx, 1
mov dword [esp + 0x5c], edx
jmp 0x786456
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0xcb7040
mov dword [esp + 4], 0x10
mov dword [esp], 0
call fcn.00961b69
jmp 0x786161
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], edx
imul eax, dword [ebp + 0xc], 0x82224
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp + 0xc]
mov ecx, dword [edx + 0x3130]
lea esi, [eax + edx + 0x3138]
mov edx, 0x10
sar edx, cl
test edi, edi
mov dword [ebp - 0x34], esp
mov dword [ebp - 0x18], edx
je 0x7a2fc0
mov edi, edx
shr edi, 0x1f
lea ebx, [edx + edi]
sar ebx, 1
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0xc]
mov eax, edx
mov dword [ebp - 0x1c], edx
add eax, eax
test ebx, ebx
mov edi, dword [ebp + 0xc]
cmovne eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + edi*4 + 0x1580]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x20], ebx
mov ebx, dword [eax + edi*4 + 0x1570]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x24], ebx
mov ebx, dword [eax + edi*4 + 0x1498]
mov edi, dword [ebp + 0xc]
imul edi, edx
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x10]
imul edi, edx
mov edx, dword [ebx + 0x20d478]
lea eax, [edx + edi*8]
mov edi, dword [ebx + 0x20f420]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
lea eax, [ebx + ebx*4]
mov dword [ebp - 0x30], edi
shl eax, 3
sub eax, ebx
add eax, 0x1e
and eax, 0xfffffff0
call fcn.00a51dc8
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
lea ebx, [esp + 0x37]
mov eax, dword [edx + 0x3128]
mov edx, dword [edi + 0x312c]
and ebx, 0xfffffff0
shl eax, cl
shl edx, cl
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x3110]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x70], eax
mov eax, dword [ecx]
mov edi, dword [esi]
movzx eax, byte [eax + 0x1c8]
mov esi, dword [esi + 4]
mov dword [ebp - 0x40], 0
cmp eax, 0xe
mov edx, dword [ecx + 0x310c]
ja case.default.0x7a3083
jmp dword [eax*4 + 0xcbb278]
sar edx, 7
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
shr eax, 0x1f
imul ecx, dword [ebp - 0x14]
imul edx, dword [ebp + 8]
add eax, dword [ebp - 0x18]
sar eax, 1
sub ecx, eax
sub edx, eax
mov dword [ebp - 0x4c], edx
mov edx, ecx
mov dword [ebp - 0x48], ecx
neg edx
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
test edx, edx
cmovs edx, ecx
neg eax
test eax, eax
mov dword [ebp - 0x6c], edx
mov edx, edi
cmovns ecx, eax
sub edx, dword [ebp - 0x48]
mov eax, esi
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x18]
add ecx, ecx
cmp ecx, edx
cmovle edx, ecx
sub eax, dword [ebp - 0x4c]
cmp ecx, eax
mov dword [ebp - 0x50], edx
cmovle eax, ecx
mov dword [ebp - 0x54], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], esi
mov edi, dword [ebp + 8]
imul edi, dword [ebp - 0x38]
add edi, dword [ebp - 0x14]
lea eax, [edi + edi*4]
mov edi, dword [ebp - 0x10]
mov edx, dword [edi + 0x20b9c8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ecx
lea esi, [edx + eax*2]
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0x4c]
mov dword [esp + 0xc], eax
mov eax, edi
mov edx, dword [ebp - 0x48]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x20]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov edx, dword [ebp - 0x30]
call fcn.007a0a2b
mov ebx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x54]
cmp ebx, esi
mov dword [ebp - 0x58], ebx
jge 0x7a31f4
mov ecx, ebx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x68]
add eax, edx
imul ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x30]
imul edi, dword [ebp - 0x1c]
mov dword [ebp - 0x60], eax
lea ebx, [ecx + esi]
mov dword [ebp - 0x64], edi
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add ecx, dword [ebp - 0x58]
add edi, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2c]
imul ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x5c], edi
add ecx, dword [ebp - 0x60]
lea edi, [edx + eax*2]
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x6c]
cmp ecx, esi
jmp 0x7a31dd
mov esi, dword [ebp - 0x5c]
movzx eax, byte [ecx + ebx]
movzx edx, byte [ecx + esi]
imul eax, edx
movsx edx, word [edi + ecx*2]
add eax, 8
sar eax, 4
add edx, eax
mov eax, edx
sar eax, 4
test eax, 0xffffff00
je 0x7a31d1
mov eax, edx
sar eax, 0x1f
not eax
mov edx, dword [ebp - 0x74]
mov byte [ecx + edx], al
add ecx, 1
cmp ecx, dword [ebp - 0x50]
jl 0x7a31a4
add dword [ebp - 0x58], 1
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x54]
add dword [ebp - 0x64], edi
add ebx, dword [ebp - 0x20]
cmp dword [ebp - 0x58], ecx
jl 0x7a3178
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x7a32c4
mov eax, dword [ebp - 0x38]
sub eax, 1
cmp eax, dword [ebp - 0x14]
je 0x7a32c4
cmp dword [ebp - 0x18], 0x10
je 0x7a3355
cmp dword [ebp - 0x18], 8
jne 0x7a34c4
mov dword [esp + 0x10], 0x10
mov ecx, dword [ebp - 0x20]
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x4c]
add eax, dword [ebp - 0x48]
imul edx, ecx
add eax, edx
mov dword [esp + 8], eax
mov ebx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x48]
add ebx, edx
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x10]
add esi, 0x20c9f0
mov dword [esp], esi
mov edi, dword [ebp - 0x10]
call dword [edi + 0x3c0]
mov esi, eax
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x7a32ad
xor ebx, ebx
mov edx, ebx
mov eax, ebx
add ebx, 1
and edx, 1
sar eax, 1
add edx, dword [ebp - 0x14]
mov dword [esp + 4], 1
sub edx, eax
add eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x10]
call fcn.007a2bcc
add dword [ebp - 0x40], eax
cmp ebx, 3
jle 0x7a326f
mov ebx, dword [ebp - 0x38]
sub ebx, 2
cmp ebx, dword [ebp - 0x14]
je 0x7a3416
mov eax, dword [ebp - 0x40]
imul eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
mov esp, dword [ebp - 0x34]
lea esp, [ebp - 0xc]
add eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp + 8]
test esi, esi
je 0x7a32da
mov edx, dword [ebp - 0x3c]
sub edx, 1
cmp edx, dword [ebp + 8]
jne 0x7a320e
mov ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x7a33df
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x50], edi
mov eax, dword [ebp + 8]
test eax, eax
jne 0x7a33d4
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x54], esi
mov ebx, dword [ebp - 0x68]
cmp ebx, dword [ebp - 0x54]
jge 0x7a320e
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x50]
imul eax, ebx
add ecx, dword [ebp - 0x6c]
sub edi, dword [ebp - 0x6c]
lea esi, [eax + ecx]
mov edx, dword [ebp - 0x4c]
add edx, ebx
add ebx, 1
imul edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x6c]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp], edx
call fcn.00a5b5c0
add esi, dword [ebp - 0x20]
cmp ebx, dword [ebp - 0x54]
jl 0x7a331e
cmp dword [ebp - 0x18], 0x10
jne 0x7a3218
mov esi, dword [ebp - 0x10]
mov edi, dword [esi]
mov eax, dword [edi + 0x1c8]
cmp eax, 0xc
je 0x7a343d
cmp eax, 0xb
je 0x7a3480
mov ecx, dword [ebp - 0x10]
xor esi, esi
xor ebx, ebx
lea edi, [ecx + 0x20c9f0]
mov eax, ebx
mov ecx, ebx
add ebx, 1
sar eax, 1
and ecx, 1
shl eax, 4
shl ecx, 4
add eax, dword [ebp - 0x4c]
imul eax, dword [ebp - 0x20]
add ecx, eax
add ecx, dword [ebp - 0x48]
mov dword [esp + 0x10], 0x10
mov edx, dword [ebp - 0x20]
mov dword [esp + 0xc], edx
mov eax, dword [ebp - 0x24]
add eax, ecx
mov dword [esp + 8], eax
add ecx, dword [ebp - 0x28]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x10]
call dword [edx + 0x3c0]
add esi, eax
cmp ebx, 3
jle 0x7a337f
jmp 0x7a3266
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x68], edx
jmp 0x7a32fc
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x6c], ebx
jmp 0x7a32eb
mov edx, dword [ebp - 0x38]
mov dword [esp + 4], 1
mov ecx, dword [ebp + 8]
sub edx, 1
add ecx, 1
mov dword [esp], ecx
mov eax, dword [ebp - 0x10]
call fcn.007a2bcc
add dword [ebp - 0x40], eax
jmp 0x7a32ad
mov dword [esp + 0x10], 0x20
mov ebx, esi
mov edi, dword [ebp - 0x20]
add ebx, 0x20c9f0
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x4c]
imul edx, dword [ebp - 0x20]
add eax, dword [ebp - 0x48]
add eax, edx
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x48]
mov dword [esp], ebx
add ecx, edx
mov dword [esp + 4], ecx
call fcn.0067b1a1
jmp 0x7a3264
mov dword [esp + 0x10], 0x20
mov eax, dword [ebp - 0x20]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c]
imul ecx, dword [ebp - 0x20]
add edx, dword [ebp - 0x48]
add edx, ecx
mov dword [esp + 8], edx
mov ebx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x48]
add ebx, ecx
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x10]
add esi, 0x20c9f0
mov dword [esp], esi
call fcn.0067afbb
jmp 0x7a3264
mov dword [esp + 8], 0xb29
mov dword [esp + 4], 0xcbaea0
mov dword [esp], 0xcbb26b
call fcn.00a5b730