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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov dword [ebp - 0x64], edx
mov edx, ecx
push ebx
push esi
push edi
mov eax, dword [edx + 0x1c]
xor esi, esi
and eax, 7
mov dword [ebp - 0x50], esi
mov esi, dword [ebp - 0x64]
mov dword [ebp - 4], edx
lea edi, [eax + eax*2]
mov eax, dword [edi*4 + 0x10161a10]
mov eax, dword [edx + eax*4 + 0x30]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi*4 + 0x10161a14]
mov ebx, dword [edx + eax*4 + 0x30]
mov eax, dword [edi*4 + 0x10161a18]
mov dword [ebp - 0x18], ebx
mov eax, dword [edx + eax*4 + 0x30]
lea edi, [eax*4]
mov eax, ebx
sub eax, dword [edx + 4]
imul ecx, eax, 0x101c
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0xc], edi
add ecx, dword [eax + edi]
mov eax, dword [ebp + 8]
add eax, esi
mov dword [ebp - 0x28], ecx
mov dword [ecx + 0x100c], esi
mov dword [ecx + 0x1010], eax
mov ecx, ebx
mov esi, dword [edx + 0x14]
mov ebx, dword [edx + 0x78]
shl esi, cl
mov ecx, dword [edx]
mov eax, esi
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x48], esi
imul esi, dword [ebp - 0x4c]
shr eax, 1
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 8]
add esi, ebx
mov dword [ebp - 0x10], esi
mov esi, 1
mov edi, esi
shl edi, cl
dec edi
and edi, eax
neg edi
sbb edi, edi
shr eax, cl
shl esi, cl
neg edi
add edi, eax
dec esi
mov eax, dword [edx + 0xc]
and esi, eax
neg esi
mov dword [ebp - 0x2c], edi
sbb esi, esi
shr eax, cl
neg esi
add esi, eax
mov eax, edi
mov ecx, eax
mov dword [ebp - 0x58], esi
and eax, 1
shr ecx, 1
mov edx, esi
add ecx, eax
shr edx, 1
and esi, 1
add edx, esi
mov eax, edi
mov dword [ebp - 0x68], edx
test al, 7
mov edx, 0
setne dl
shr eax, 3
add edx, eax
mov esi, dword [ebp - 0xc]
test cl, 7
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 4]
mov eax, 0
setne al
shr ecx, 3
add eax, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x18]
mov edi, dword [edx + 0x74]
and eax, 1
mov ecx, edi
mov dword [ebp - 0x1c], edi
shr ecx, 3
mov eax, dword [edx + eax*4 + 0x3c]
mov eax, dword [eax + esi]
mov esi, ebx
add eax, ecx
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x20]
shr esi, 1
add dword [ebp + 8], eax
mov eax, dword [ebp - 0x5c]
imul eax, ecx
add esi, eax
mov eax, dword [ebp - 0x18]
imul esi, dword [ebp - 0x44]
dec eax
and eax, 1
mov eax, dword [edx + eax*4 + 0x3c]
add esi, dword [eax + ebx]
mov eax, edi
mov ebx, dword [edx + 0x380]
shr eax, 4
add esi, eax
mov dword [ebp - 0x30], ebx
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], eax
mov esi, 0
mov eax, dword [edx + 0x384]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 0x388]
mov dword [ebp - 8], eax
mov eax, dword [edx + 0x38c]
mov dword [ebp - 0x3c], eax
mov eax, dword [edx + 0x390]
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x394]
mov dword [ebp - 0x34], eax
test edi, edi
jne 0x1002e193
cmp dword [edx + 0x78], esi
jne 0x1002e193
test ecx, ecx
je 0x1002e14b
mov ebx, dword [ebp - 0xc]
mov eax, dword [edx + 0x50]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edx + 4]
mov eax, dword [eax + ebx]
mov ebx, dword [ebp - 0x30]
cmp dword [eax + ecx*4], esi
je 0x1002e193
mov eax, dword [edx + 0x48]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edx + 4]
mov eax, dword [eax + edi]
mov dword [eax + ecx*4], esi
mov eax, dword [edx + 0x44]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edx + 4]
mov eax, dword [eax + edi]
mov edi, dword [ebp - 0x1c]
mov dword [eax + ecx*4], esi
cmp dword [edx + 0x398], esi
je 0x1002e193
mov eax, dword [edx + 0x39c]
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edx + 4]
mov eax, dword [eax + ebx]
mov ebx, dword [ebp - 0x30]
mov dword [eax + ecx*4], 1
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x1002e6ae
mov eax, dword [ebp - 0x48]
cmp dword [edx + 0x78], eax
jae 0x1002ecac
mov eax, dword [ebp - 0x10]
nop dword [eax]
cmp eax, dword [ebp - 0x58]
jae 0x1002ecac
test edi, edi
jne 0x1002e21e
xor ecx, ecx
mov dword [ebp - 0x54], ecx
cmp dword [edx + 0x7c], ecx
jle 0x1002e21e
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
lea esi, [edi + 0x180]
mov eax, dword [esi - 0x100]
cmp eax, dword [edi + 0x78]
jne 0x1002e209
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 4]
shl ecx, 2
mov edx, dword [eax + ebx]
mov eax, dword [esi]
sub edx, ecx
mov dword [edx], eax
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 4]
shl ecx, 2
mov edx, dword [eax + ebx]
mov eax, dword [esi + 0x100]
sub edx, ecx
mov ecx, dword [ebp - 0x54]
mov dword [edx], eax
inc ecx
add esi, 4
mov dword [ebp - 0x54], ecx
cmp ecx, dword [edi + 0x7c]
jl 0x1002e1d3
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 4]
neg ecx
shl ecx, 2
mov eax, dword [eax + esi]
mov dword [ebp - 0x40], ecx
mov esi, dword [ecx + eax]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x44], esi
test al, 8
je 0x1002e2d6
cmp dword [edx + 0x398], 0
je 0x1002e2d6
mov ecx, dword [ebp - 0x28]
test al, 0x40
mov eax, 0x195
mov edx, 0xe5
cmovne edx, eax
call fcn.1002a5b0
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x1014]
cmp ecx, 2
je 0x1002ecac
cmp ecx, 3
je 0x1002ecac
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov ecx, dword [edx + 0x39c]
mov eax, dword [edx + 4]
shl eax, 2
mov ecx, dword [ecx + esi]
mov esi, dword [ebp - 0x60]
sub ecx, eax
xor eax, eax
cmp dword [ecx], esi
mov esi, dword [ebp - 0xc]
sete al
mov dword [ecx], eax
mov eax, dword [edx + 0x39c]
mov ecx, dword [edx + 4]
neg ecx
shl ecx, 2
mov eax, dword [eax + esi]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x40], ecx
cmp dword [ecx + eax], 0
je 0x1002e35e
mov dword [edx + 0x398], 0
test edi, edi
jne 0x1002e3fc
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x14], eax
xor ebx, ebx
mov eax, dword [edx + 0x78]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x30], ebx
test eax, eax
jne 0x1002e30d
cmp dword [ebp - 0x10], ecx
jbe 0x1002e31f
mov esi, dword [ebp - 0xc]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + esi]
mov esi, dword [ebp - 0x40]
cmp dword [esi + eax], ecx
mov esi, dword [ebp - 0x44]
jne 0x1002e31c
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x20]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 0x78]
cmp eax, 1
ja 0x1002e346
cmp dword [ebp - 0x10], 1
jbe 0x1002e3ff
mov esi, dword [ebp - 0xc]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + esi]
mov esi, dword [ebp - 0x40]
cmp dword [esi + eax], ecx
mov esi, dword [ebp - 0x44]
jne 0x1002e3ff
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
add eax, eax
sub ecx, eax
movzx ecx, byte [ecx]
shl ecx, 8
mov dword [ebp - 8], ecx
jmp 0x1002e3ff
cmp dword [edx + 0x78], 0
mov eax, dword [ebp + 8]
mov esi, eax
jne 0x1002e3b6
cmp dword [ebp - 0x4c], 0
je 0x1002e383
mov ecx, dword [ebp - 0xc]
mov eax, dword [edx + 0x50]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp - 0x40]
cmp dword [ecx + eax], 0
je 0x1002e3b6
mov eax, esi
add eax, dword [ebp - 0x20]
xor ecx, ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x44], eax
sub dword [ebp - 0x44], edx
cmp edx, eax
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 4]
cmova eax, ecx
test eax, eax
je 0x1002e3f1
inc ecx
mov byte [esi], 0
lea esi, [esi + 1]
cmp ecx, eax
jb 0x1002e3a0
mov eax, dword [ebp - 0x20]
add dword [ebp + 8], eax
jmp 0x1002e5b1
mov esi, dword [ebp + 8]
xor edx, edx
mov eax, esi
xor ecx, ecx
sub eax, dword [ebp - 0x20]
sub esi, eax
mov dword [ebp - 0x60], eax
cmp eax, dword [ebp + 8]
cmova esi, edx
mov edx, dword [ebp - 4]
test esi, esi
je 0x1002e3f1
mov edi, dword [ebp + 8]
mov edx, eax
nop dword [eax]
mov al, byte [ecx + edx]
mov byte [ecx + edi], al
inc ecx
cmp ecx, esi
jb 0x1002e3e0
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
add dword [ebp + 8], eax
jmp 0x1002e5b1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
cmp edi, eax
jae 0x1002e594
lea eax, [esi - 5]
mov dword [ebp - 0x5c], eax
lea eax, [esi - 3]
mov dword [ebp - 0x54], eax
mov esi, 1
mov eax, edi
and eax, 7
sub esi, dword [ebp - 0x20]
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
nop dword [eax]
test eax, eax
jne 0x1002e4ba
mov eax, dword [ebp - 0x20]
lea eax, [eax*8 - 8]
cmp edi, eax
jae 0x1002e4b7
cmp dword [edx + 0x78], 0
ja 0x1002e46b
cmp dword [ebp - 0x10], 0
jbe 0x1002e4b7
mov eax, dword [edx + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0xc]
shl ecx, 2
mov eax, dword [eax + edx]
mov edx, dword [ebp - 4]
sub eax, ecx
cmp dword [eax], 0
jne 0x1002e4b4
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp + 8]
movzx eax, byte [eax + ecx]
or esi, eax
cmp dword [edx + 0x78], 1
ja 0x1002e49f
cmp dword [ebp - 0x10], 1
jbe 0x1002e4b4
mov eax, dword [edx + 0x50]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0xc]
shl ecx, 2
mov eax, dword [eax + edx]
mov edx, dword [ebp - 4]
sub eax, ecx
cmp dword [eax], 0
jne 0x1002e4b4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
mov ecx, dword [ebp - 8]
or ecx, eax
mov dword [ebp - 8], ecx
jmp 0x1002e4b7
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
test byte [edx + 0x20], 0x40
je 0x1002e5d0
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x1002e522
cmp ecx, edi
jbe 0x1002e4d3
xor ecx, ecx
jmp 0x1002e50c
cmp ecx, 8
jge 0x1002e4e4
mov ecx, dword [ebp - 0x5c]
mov eax, ebx
shr eax, cl
and eax, 0x10
jmp 0x1002e507
mov edx, dword [ebp + 8]
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov ecx, 7
and al, 7
sub cl, al
mov eax, dword [ebp - 0x1c]
sar eax, 3
movzx eax, byte [eax + edx]
shr eax, cl
and eax, 1
shl eax, 4
mov dword [ebp - 0x40], eax
mov ecx, eax
mov edx, esi
mov eax, ebx
shr edx, 9
and eax, 0xf
and edx, 0x3e0
or edx, eax
or edx, ecx
jmp 0x1002e534
mov edx, esi
mov eax, ebx
shr edx, 9
and eax, 0xf
and edx, 0x3f0
or edx, eax
mov ecx, dword [ebp - 0x28]
call fcn.1002a5b0
mov ecx, eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1014]
cmp eax, 2
je 0x1002ecaf
cmp eax, 3
je 0x1002ecaf
inc edi
add ebx, ebx
or ebx, ecx
add esi, esi
mov eax, edi
mov dword [ebp - 0x30], ebx
and eax, 7
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], eax
je 0x1002e579
cmp edi, dword [ebp - 0x2c]
jb 0x1002e4c4
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 8]
mov byte [edx], bl
inc edx
mov dword [ebp + 8], edx
mov edx, dword [ebp - 4]
cmp edi, dword [ebp - 0x2c]
jb 0x1002e430
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x20]
shl cl, 3
sub cl, al
mov eax, dword [ebp + 8]
shl byte [eax - 1], cl
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [edx + 0x398], 1
mov eax, dword [ebp - 0x10]
inc dword [edx + 0x78]
inc eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x10], eax
cmp dword [edx + 0x78], ecx
jb 0x1002e1b0
jmp 0x1002ecac
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x1002e63b
cmp edx, edi
jbe 0x1002e5df
xor ecx, ecx
jmp 0x1002e618
cmp edx, 8
jge 0x1002e5f0
mov ecx, dword [ebp - 0x54]
mov eax, ebx
shr eax, cl
and eax, 4
jmp 0x1002e613
sub eax, edx
mov ecx, 7
mov edx, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
and al, 7
sub cl, al
mov eax, dword [ebp - 0x1c]
sar eax, 3
movzx eax, byte [eax + edx]
shr eax, cl
and eax, 1
shl eax, 2
mov dword [ebp - 0x40], eax
mov ecx, eax
mov eax, dword [ebp - 8]
mov edx, esi
shr edx, 4
and eax, 0x1c000
and edx, 0x3c00
or edx, eax
mov eax, ebx
shr edx, 7
and eax, 3
or edx, eax
or edx, ecx
jmp 0x1002e658
mov edx, esi
and ecx, 0x1c000
shr edx, 4
mov eax, ebx
and edx, 0x3e00
and eax, 3
or edx, ecx
shr edx, 7
or edx, eax
mov ecx, dword [ebp - 0x28]
call fcn.1002a5b0
mov ecx, eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1014]
cmp eax, 2
je 0x1002ecaf
cmp eax, 3
je 0x1002ecaf
add ebx, ebx
inc edi
or ebx, ecx
add esi, esi
mov ecx, dword [ebp - 8]
mov eax, edi
add ecx, ecx
mov dword [ebp - 0x30], ebx
and eax, 7
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], eax
je 0x1002e57c
cmp edi, dword [ebp - 0x2c]
jb 0x1002e5d0
jmp 0x1002e57c
mov ecx, dword [ebp - 0x48]
cmp dword [edx + 0x78], ecx
jae 0x1002ecac
mov ecx, dword [ebp - 0x10]
nop dword [eax]
cmp ecx, dword [ebp - 0x58]
jae 0x1002ecac
test edi, edi
jne 0x1002e733
xor ecx, ecx
mov dword [ebp - 0x54], ecx
cmp dword [edx + 0x7c], ecx
jle 0x1002e733
mov ebx, dword [ebp - 0x18]
lea edi, [edx + 0x180]
mov esi, dword [ebp - 0xc]
mov eax, dword [edi - 0x100]
cmp eax, dword [edx + 0x78]
jne 0x1002e71e
mov eax, dword [ebp - 4]
mov edx, ebx
sub edx, dword [eax + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + esi]
mov eax, dword [edi]
mov dword [ecx + edx*4], eax
mov edx, ebx
mov eax, dword [ebp - 4]
sub edx, dword [eax + 4]
mov eax, dword [eax + 0x48]
mov ecx, dword [eax + esi]
mov eax, dword [edi + 0x100]
mov dword [ecx + edx*4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x54]
inc ecx
add edi, 4
mov dword [ebp - 0x54], ecx
cmp ecx, dword [edx + 0x7c]
jl 0x1002e6e3
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov ecx, eax
mov eax, dword [edx + 0x44]
sub ecx, dword [edx + 4]
mov eax, dword [eax + edi]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edx + 0x78]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
shr ecx, 1
dec eax
cmp ecx, eax
jae 0x1002e761
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x10]
dec ecx
shr eax, 1
cmp eax, ecx
jb 0x1002e767
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
test byte [edx + 0x20], 0x10
je 0x1002e7c5
cmp dword [edx + 0x398], 0
je 0x1002e7c5
mov ecx, dword [ebp - 0x28]
mov edx, 0xc3f
call fcn.1002a5b0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
sub edx, dword [ecx + 4]
mov ecx, dword [ecx + 0x39c]
mov ecx, dword [ecx + edi]
mov edi, dword [ebp - 0x1c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1014]
cmp eax, 2
je 0x1002ecac
cmp eax, 3
je 0x1002ecac
mov edi, dword [ebp - 4]
mov dword [edi + 0x398], 0
jmp 0x1002e7c8
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x1002e8a7
mov ecx, dword [edi + 0x78]
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x34], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x54], ecx
test ecx, ecx
jne 0x1002e80e
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x1002e862
mov edx, dword [ebp - 0xc]
mov eax, dword [edi + 0x50]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edi + 4]
mov eax, dword [eax + edx]
mov edx, dword [ebp - 0x1c]
cmp dword [eax + ecx*4], ebx
mov ecx, dword [edi + 0x78]
jne 0x1002e85f
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x20]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x14], eax
cmp ecx, 1
ja 0x1002e841
mov eax, dword [ebp - 0x10]
cmp eax, 1
jbe 0x1002e862
mov edx, dword [ebp - 0xc]
mov eax, dword [edi + 0x50]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edi + 4]
mov eax, dword [eax + edx]
mov edx, dword [ebp - 0x1c]
cmp dword [eax + ecx*4], ebx
jne 0x1002e85c
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
add eax, eax
sub ecx, eax
movzx edi, byte [ecx]
mov ecx, dword [ebp - 0x54]
shl edi, 8
mov dword [ebp - 8], edi
mov edi, dword [ebp - 4]
jmp 0x1002e85f
mov ecx, dword [edi + 0x78]
mov eax, dword [ebp - 0x10]
cmp ecx, 1
ja 0x1002e880
cmp eax, 1
jbe 0x1002e88f
mov ecx, dword [ebp - 0x18]
sub ecx, dword [edi + 4]
mov eax, dword [edi + 0x50]
mov edi, dword [ebp - 0xc]
mov eax, dword [eax + edi]
cmp dword [eax + ecx*4], ebx
jne 0x1002e88f
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x44]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax]
shl eax, 8
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
cmp edx, eax
jae 0x1002ec5e
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x14]
add eax, 0xfffffffd
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x54], eax
nop dword [eax + eax]
test dl, 0xf
jne 0x1002e92e
mov eax, dword [ebp - 0x44]
lea ecx, [eax*8 - 8]
mov eax, edx
shr eax, 1
cmp eax, ecx
jae 0x1002e92b
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + 1]
or dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
movzx eax, byte [eax + 1]
or dword [ebp - 0x24], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x78], 1
ja 0x1002e922
cmp dword [ebp - 0x10], 1
jbe 0x1002e92b
mov ecx, dword [ebp - 0x18]
sub ecx, dword [eax + 4]
mov edi, dword [ebp - 0xc]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + edi]
mov edi, dword [ebp - 0x14]
cmp dword [eax + ecx*4], 0
jne 0x1002e92b
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax]
or dword [ebp - 0x34], eax
mov ecx, dword [ebp + 8]
mov eax, ecx
mov ecx, dword [ebp - 0x20]
sub eax, ecx
inc eax
mov dword [ebp - 0x4c], eax
jmp 0x1002e943
mov ecx, dword [ebp - 0x20]
test dl, 7
jne 0x1002e9c0
lea eax, [ecx*8 - 8]
cmp edx, eax
mov eax, dword [ebp - 4]
jae 0x1002e9c3
mov ecx, dword [eax + 0x78]
mov dword [ebp - 0x30], ecx
test ecx, ecx
jne 0x1002e97d
cmp dword [ebp - 0x10], ecx
jbe 0x1002e9c3
mov ecx, dword [ebp - 0x18]
sub ecx, dword [eax + 4]
mov eax, dword [eax + 0x50]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx]
cmp dword [eax + ecx*4], 0
jne 0x1002e9c0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax]
or edi, eax
mov dword [ebp - 0x14], edi
cmp ecx, 1
ja 0x1002e9ae
cmp dword [ebp - 0x10], 1
mov eax, dword [ebp - 4]
jbe 0x1002e9c3
mov ecx, dword [ebp - 0x18]
sub ecx, dword [eax + 4]
mov edi, dword [ebp - 0xc]
mov eax, dword [eax + 0x50]
mov eax, dword [eax + edi]
mov edi, dword [ebp - 0x14]
cmp dword [eax + ecx*4], 0
jne 0x1002e9c0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 8]
add eax, eax
sub ecx, eax
movzx eax, byte [ecx + 1]
or dword [ebp - 8], eax
nop
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
sub ecx, dword [eax + 4]
mov eax, dword [eax + 0x39c]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x1002ea50
mov eax, dword [ebp - 0x24]
mov esi, ecx
shr esi, 3
and eax, 0x1c000
and esi, 0x3800
or esi, eax
mov eax, dword [ebp - 0x3c]
shr esi, 3
and eax, 0x1c000
or esi, eax
mov eax, dword [ebp - 0x30]
shr esi, 8
mov dword [ebp - 0x50], esi
test eax, eax
jne 0x1002ea50
test esi, esi
je 0x1002ea20
cmp esi, 0x1ff
jne 0x1002ea50
mov ecx, dword [ebp - 0x2c]
mov eax, esi
and eax, 1
add ebx, ebx
inc edx
or ebx, eax
test dl, 1
je 0x1002ea36
cmp edx, ecx
jb 0x1002ea28
shl edi, 2
shl dword [ebp - 8], 2
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], edi
jmp 0x1002ec1b
mov eax, dword [ebp - 4]
test byte [eax + 0x20], 4
je 0x1002eb36
mov eax, dword [ebp - 0x24]
shr ecx, 2
and eax, 0x18000
and ecx, 0x6000
or ecx, eax
mov eax, edi
shr ecx, 4
test byte [ebp - 0x10], 1
jne 0x1002eacb
test dl, 1
jne 0x1002eaa5
and eax, 0x1c000
or ecx, eax
mov eax, ebx
and eax, 1
shr ecx, 9
shl eax, 4
or ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [ecx + eax]
movsx eax, al
jmp 0x1002eb3b
and eax, 0x38000
or ecx, eax
mov eax, ebx
and eax, 3
shr ecx, 9
shl eax, 4
or ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [ecx + eax + 0x100]
movsx eax, al
jmp 0x1002eb3b
test dl, 1
jne 0x1002eb03
and eax, 0x1c000
or ecx, eax
mov eax, dword [ebp - 8]
and eax, 0x1c000
shr ecx, 3
or ecx, eax
mov eax, ebx
and eax, 1
shr ecx, 6
shl eax, 4
or ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [ecx + eax + 0x300]
movsx eax, al
jmp 0x1002eb3b
and eax, 0x38000
or ecx, eax
mov eax, dword [ebp - 8]
and eax, 0x38000
shr ecx, 3
or ecx, eax
mov eax, ebx
and eax, 3
shr ecx, 6
shl eax, 4
or ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov al, byte [ecx + eax + 0xb00]
movsx eax, al
jmp 0x1002eb3b
mov eax, 2
test al, 2
je 0x1002ebf7
mov eax, dword [ebp - 8]
mov esi, edi
shr esi, 2
and eax, 0x8000
cmp dword [ebp - 0x60], 0
je 0x1002eb74
mov ecx, dword [ebp - 0x6c]
and esi, 0x3000
or esi, eax
lea eax, [ebx*4]
shr eax, cl
shr esi, 0xa
and eax, 0x10
or esi, eax
jmp 0x1002eb7f
and esi, 0x7000
or esi, eax
shr esi, 0xa
mov ecx, dword [ebp - 0x24]
mov eax, ebx
and eax, 3
or esi, eax
mov eax, dword [ebp - 0x3c]
test dl, 1
je 0x1002ebac
and ecx, 0xc000
and eax, 0xc000
or ecx, 0x40000
shr ecx, 2
or ecx, eax
shr ecx, 6
jmp 0x1002ebbf
shr ecx, 2
and eax, 0x18000
and ecx, 0x6000
or ecx, eax
shr ecx, 7
mov eax, dword [ebp - 0x10]
and eax, 1
shl eax, 0xb
or eax, ecx
mov ecx, dword [ebp - 0x28]
or esi, eax
mov edx, esi
mov dword [ebp - 0x50], esi
call fcn.1002a5b0
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 0x1014]
cmp ecx, 2
je 0x1002eca9
cmp ecx, 3
je 0x1002eca9
mov edx, dword [ebp - 0x1c]
shl dword [ebp - 8], 1
add ebx, ebx
inc edx
or ebx, eax
add edi, edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edx
test dl, 1
je 0x1002ec1b
mov ecx, dword [ebp - 0x34]
cmp edx, dword [ebp - 0x2c]
jb 0x1002ea50
shl dword [ebp - 0x3c], 1
shl dword [ebp - 0x24], 1
shl dword [ebp - 0x34], 1
mov eax, dword [ebp - 0x2c]
test dl, 7
je 0x1002ec34
cmp edx, eax
jb 0x1002e9c0
mov ecx, dword [ebp + 8]
inc dword [ebp - 0x4c]
mov byte [ecx], bl
inc ecx
mov dword [ebp + 8], ecx
test dl, 0xf
je 0x1002ec4d
cmp edx, eax
jb 0x1002e940
inc dword [ebp - 0x40]
inc dword [ebp - 0x38]
inc dword [ebp - 0x54]
cmp edx, eax
jb 0x1002e8d0
mov cl, byte [ebp - 0x20]
xor edi, edi
mov edx, dword [ebp - 4]
shl cl, 3
sub cl, al
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp + 8]
shl byte [eax - 1], cl
mov eax, dword [edx + 0x78]
test al, 1
jne 0x1002ec86
mov ecx, dword [ebp - 0x44]
sub dword [ebp - 0x40], ecx
sub dword [ebp - 0x38], ecx
jmp 0x1002ec90
mov dword [edx + 0x398], 1
mov ecx, dword [ebp - 0x10]
inc eax
inc ecx
mov dword [edx + 0x78], eax
cmp eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
jb 0x1002e6c0
jmp 0x1002ecac
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x388], eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx + 0x38c], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 0x390], eax
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x394], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx + 0x74], edi
pop edi
mov dword [ecx + 0x380], ebx
mov dword [ecx + 0x384], esi
mov eax, dword [eax + 0x100c]
sub eax, dword [ebp - 0x64]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret