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

Disassembly:
push ebp
mov ebp, eax
push edi
lea edx, [ebp + 0x2934]
push esi
push ebx
sub esp, 0xdc
movzx eax, byte [eax + 0x2cb4]
mov dword [esp + 0x40], edx
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 0x2cc8]
cmp eax, 1
je 0x7d0fbf
jle 0x7d0f99
cmp eax, 2
je 0x7d063d
mov eax, dword [ebp + 0x2cc4]
cmp eax, 1
je 0x7d0f64
jle 0x7d0f73
cmp eax, 2
jne 0x7cfa41
mov dword [ebp + 0x2cd8], 5
mov edx, dword [ebp + 0x9c]
mov dword [ebp + 0x2024], 1
mov dword [ebp + 0x2910], 1
test edx, edx
mov dword [ebp + 0x201c], 0
jg 0x7cfaf7
mov dword [ebp + 0x2018], 0
lea esi, [edx - 1]
mov dword [esp + 0x14], 0x70
mov dword [esp + 0x10], esi
mov edi, dword [ebp + 0x98]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
sub edi, 1
mov dword [esp], ebp
mov dword [esp + 0xc], edi
call fcn.00938160
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x10
mov edx, dword [ebp + 0x201c]
mov dword [esp], ebp
shl edx, 4
mov dword [esp + 4], edx
call fcn.008ba9c6
mov eax, dword [ebp + 0x201c]
add eax, 1
mov edx, dword [ebp + 0x9c]
mov dword [ebp + 0x2910], 0
cmp eax, edx
mov dword [ebp + 0x201c], eax
jge 0x7cfa77
mov dword [ebp + 0x2018], 0
mov dword [esp], ebp
call fcn.008bab2c
mov edi, dword [ebp + 0x98]
cmp dword [ebp + 0x2018], edi
jge 0x7cfab6
mov ebx, dword [ebp]
mov edx, 8
mov edi, dword [ebp + 0x29f0]
mov ecx, dword [ebx + 0x290]
add dword [ebp + 0x202c], 2
add dword [ebp + 0x2030], 2
sar edx, cl
add dword [ebp + 0x2034], 2
add dword [ebp + 0x2038], 2
lea ecx, [edx + edx]
add dword [ebp + 0x2060], edx
add dword [ebp + 0x2064], edx
add dword [ebp + 0x205c], ecx
add dword [ebp + 0x203c], 1
add dword [ebp + 0x2040], 1
mov dword [esp], edi
call dword [ebp + 0xb14]
mov esi, dword [ebp + 0xa0]
mov eax, dword [ebp + 0x2018]
imul esi, dword [ebp + 0x201c]
mov ecx, dword [ebp + 0x808]
mov edi, dword [ebp + 0x804]
add esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb4], esi
mov esi, dword [ebp + 0x2934]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x38], esi
mov dword [ecx + ebx*4], 1
mov edx, dword [ebp + 0x202c]
mov word [edi + edx*4], 0
mov word [edi + edx*4 + 2], 0
mov edx, dword [eax + 8]
mov ebx, edx
mov ecx, edx
mov edi, dword [0x1290144]
sar ebx, 3
and ecx, 7
mov eax, dword [ebx + esi]
bswap eax
shl eax, cl
shr eax, 0xf7
movsx ebx, word [edi + eax*4 + 2]
movsx esi, word [edi + eax*4]
test ebx, ebx
jns 0x7cfc1e
add edx, 9
mov ecx, dword [esp + 0x38]
mov eax, edx
sar eax, 3
mov eax, dword [eax + ecx]
mov ecx, edx
bswap eax
and ecx, 7
shl eax, cl
mov ecx, ebx
shr eax, cl
add eax, esi
movsx esi, word [edi + eax*4]
movsx ebx, word [edi + eax*4 + 2]
add edx, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xbc], esi
mov dword [ebx + 8], edx
mov esi, dword [ebp + 0x2f4c]
test esi, esi
je 0x7d0cc7
mov esi, edx
mov ecx, edx
mov edi, dword [esp + 0x38]
sar esi, 3
and ecx, 7
add edx, 1
movzx eax, byte [esi + edi]
mov dword [ebx + 8], edx
shl al, cl
shr al, 7
movzx eax, al
mov dword [ebp + 0xa60], eax
movzx eax, byte [ebp + 0x2f58]
cmp al, 2
je 0x7d0ced
cmp al, 1
sete al
movzx eax, al
mov dword [esp + 0xac], eax
cmp byte [ebp + 0x2cc0], 0
je 0x7cfd29
movzx eax, byte [ebp + 0x2cc1]
cmp al, 3
je 0x7d0deb
cmp al, 2
je 0x7d0dd8
cmp al, 1
je 0x7d0e96
mov edx, 0xf
test al, al
mov esi, 0
cmovne edx, esi
test dl, 1
je 0x7cfcd8
mov ebx, dword [ebp + 0x2018]
test ebx, ebx
jne 0x7cfcd8
movzx edi, byte [ebp + 0x2cb5]
mov dword [esp + 0xb0], edi
test dl, 2
je 0x7cfcf5
mov eax, dword [ebp + 0x2910]
test eax, eax
je 0x7cfcf5
movzx ecx, byte [ebp + 0x2cb5]
mov dword [esp + 0xb0], ecx
test dl, 4
je 0x7cfd0f
mov esi, dword [ebp + 0x98]
sub esi, 1
cmp dword [ebp + 0x2018], esi
je 0x7d0eee
and dl, 8
je 0x7cfd29
mov edx, dword [ebp + 0x9c]
sub edx, 1
cmp dword [ebp + 0x201c], edx
je 0x7d0edb
movzx ecx, byte [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov edi, dword [ebp + 0x7f4]
mov byte [eax + edi], cl
mov esi, dword [esp + 0xb0]
mov edx, dword [ebp + 0xa3c]
mov ecx, dword [ebp + 0xa40]
movzx ebx, byte [esi + edx]
mov dword [ebp + 0xa34], ebx
movzx eax, byte [esi + ecx]
mov dword [esp + 0xc0], 0
mov dword [esp + 0x28], 0
mov dword [ebp + 0xa38], eax
mov edi, 5
mov esi, dword [esp + 0xbc]
sub edi, dword [esp + 0xc0]
mov ecx, edi
sar esi, cl
and esi, 1
cmp dword [esp + 0xc0], 3
mov dword [esp + 0xb8], esi
jg 0x7cfdef
mov eax, dword [esp + 0xc0]
mov ecx, dword [ebp + eax*4 + 0x202c]
mov eax, dword [ebp + 0xa4c]
mov edx, ecx
movzx ebx, byte [eax + ecx - 1]
sub edx, dword [ebp + 0xa4]
movzx esi, byte [eax + edx - 1]
movzx edx, byte [edx + eax]
cmp esi, edx
cmovne ebx, edx
add eax, ecx
xor dword [esp + 0xb8], ebx
mov dword [esp + 0xd8], eax
movzx ebx, byte [esp + 0xb8]
mov byte [eax], bl
mov ecx, edi
mov ebx, dword [esp + 0xb8]
mov edi, dword [ebp + 0x2910]
shl ebx, cl
mov dword [esp + 0xa8], 0
or dword [esp + 0xbc], ebx
test edi, edi
je 0x7cfe25
mov esi, dword [esp + 0xc0]
sub esi, 2
cmp esi, 1
ja 0x7cfe30
mov dword [esp + 0xa8], 1
mov ecx, dword [ebp + 0x2018]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xa4], 0
test ecx, ecx
mov dword [ebp + 0x2ce0], edx
jne 0x7cfe6e
cmp dword [esp + 0xc0], 1
sete bl
cmp dword [esp + 0xc0], 3
sete al
or eax, ebx
test al, 1
je 0x7cfe79
mov dword [esp + 0xa4], 1
mov esi, dword [esp + 0xa4]
mov edx, dword [ebp + 0x29f0]
mov edi, dword [esp + 0xc0]
shl edi, 7
mov dword [ebp + 0x2ce4], esi
mov esi, edx
add esi, edi
cmp dword [esp + 0xc0], 3
mov dword [esp + 0x2c], edx
jg 0x7d073a
mov eax, dword [ebp + 0x2cd4]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xd0], 0
mov dword [esp + 0x8c], 0
mov edi, dword [ebp + 0xa0]
mov edx, dword [ebp + 0xa60]
imul edi, dword [ebp + 0x201c]
mov dword [esp + 0x98], edx
add ecx, edi
cmp dword [esp + 0xc0], 3
mov dword [esp + 0x88], ecx
jg 0x7d064c
mov ebx, dword [ebp + 0x2904]
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0x2934]
shl ebx, 4
mov dword [esp + 0x80], ecx
mov edi, dword [ebx + 0x1290124]
mov ebx, dword [eax + 8]
mov edx, ebx
sar edx, 3
mov eax, dword [edx + ecx]
mov ecx, ebx
bswap eax
and ecx, 7
shl eax, cl
shr eax, 0xf7
movsx edx, word [edi + eax*4 + 2]
movsx ecx, word [edi + eax*4]
test edx, edx
mov dword [esp + 0x84], ecx
jns 0x7cffc7
add ebx, 9
mov ecx, dword [esp + 0x80]
neg edx
mov eax, ebx
mov dword [esp + 0x7c], edx
sar eax, 3
mov eax, dword [eax + ecx]
mov ecx, ebx
bswap eax
and ecx, 7
shl eax, cl
movzx ecx, byte [esp + 0x7c]
neg cl
shr eax, cl
add eax, dword [esp + 0x84]
movsx edx, word [edi + eax*4]
mov dword [esp + 0x84], edx
movsx edx, word [edi + eax*4 + 2]
test edx, edx
jns 0x7cffc7
add ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, ebx
sar eax, 3
mov eax, dword [eax + ecx]
mov ecx, ebx
bswap eax
and ecx, 7
shl eax, cl
mov ecx, edx
shr eax, cl
add eax, dword [esp + 0x84]
movsx edx, word [edi + eax*4]
mov dword [esp + 0x84], edx
movsx edx, word [edi + eax*4 + 2]
add ebx, edx
mov edi, dword [esp + 0x40]
mov dword [edi + 8], ebx
mov edi, dword [esp + 0x84]
test edi, edi
jl 0x7d0710
je 0x7d0030
cmp edi, 0x77
je 0x7d0a01
cmp dword [esp + 0xb0], 1
je 0x7d0c9a
cmp dword [esp + 0xb0], 2
je 0x7d0d28
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov eax, ebx
mov ecx, ebx
sar eax, 3
and ecx, 7
movzx edx, byte [eax + edx]
lea eax, [ebx + 1]
mov ebx, edi
shl dl, cl
neg ebx
mov ecx, dword [esp + 0x40]
and dl, 0x80
mov dword [ecx + 8], eax
cmovne edi, ebx
mov edx, dword [ebp + 0xa0]
mov eax, dword [ebp + 0x2ce0]
mov ebx, dword [ebp + 0x2ce4]
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], edx
mov ebx, edx
mov eax, dword [ebp + 0xa00]
mov edx, dword [ebp + ecx*4 + 0x2044]
mov ecx, dword [ebp + ecx*4 + 0x202c]
imul ebx, dword [ebp + 0x201c]
lea ecx, [eax + ecx*2]
mov eax, edx
add edx, edx
mov dword [esp + 0x58], ecx
movsx ecx, word [ecx - 2]
not eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x58]
neg edx
movsx eax, word [ecx + eax*2]
movsx edx, word [ecx + edx]
add ebx, dword [ebp + 0x2018]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x7f4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x68]
movsx ecx, byte [ebx + eax]
test edx, edx
mov dword [esp + 0x54], ecx
je 0x7d0120
cmp dword [esp + 0xc0], 1
setne cl
xor edx, edx
cmp dword [esp + 0xc0], 3
setne dl
test edx, ecx
je 0x7d0120
mov edx, dword [esp + 0x34]
movsx ecx, byte [edx + ebx - 1]
test ecx, ecx
setne dl
xor eax, eax
cmp ecx, dword [esp + 0x54]
setne al
test eax, edx
je 0x7d0120
mov eax, dword [ebp + 0xa3c]
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x54]
imul edx, dword [esp + 0x5c]
movzx eax, byte [ecx + eax]
imul edx, dword [eax*4 + 0xd489bc]
add edx, 0x20000
sar edx, 0x12
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x7d0183
mov eax, dword [esp + 0xc0]
sub eax, 2
cmp eax, 1
jbe 0x7d0183
mov eax, ebx
mov edx, dword [esp + 0x34]
sub eax, dword [esp + 0x30]
movsx ecx, byte [eax + edx]
test ecx, ecx
setne dl
xor eax, eax
cmp ecx, dword [esp + 0x54]
setne al
test eax, edx
je 0x7d0183
mov eax, dword [ebp + 0xa3c]
movzx edx, byte [ecx + eax]
mov ecx, dword [esp + 0x54]
imul edx, dword [esp + 0x64]
movzx eax, byte [ecx + eax]
imul edx, dword [eax*4 + 0xd489bc]
add edx, 0x20000
sar edx, 0x12
mov dword [esp + 0x64], edx
mov ecx, dword [esp + 0x6c]
test ecx, ecx
setne dl
xor eax, eax
cmp dword [esp + 0x68], 0
setne al
test eax, edx
je 0x7d020c
cmp dword [esp + 0xc0], 3
je 0x7d020c
xor edx, edx
cmp dword [esp + 0xc0], 1
setne dl
sub ebx, edx
mov ecx, ebx
mov eax, ebx
mov ebx, dword [esp + 0x34]
sub ecx, dword [esp + 0x30]
cmp dword [esp + 0xc0], 2
cmovne eax, ecx
movsx ecx, byte [eax + ebx]
test ecx, ecx
setne bl
xor edx, edx
cmp ecx, dword [esp + 0x54]
setne dl
test edx, ebx
je 0x7d020c
mov edx, dword [ebp + 0xa3c]
movzx ebx, byte [ecx + edx]
mov ecx, dword [esp + 0x54]
imul ebx, dword [esp + 0x60]
movzx eax, byte [ecx + edx]
imul ebx, dword [eax*4 + 0xd489bc]
add ebx, 0x20000
sar ebx, 0x12
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x6c]
test edx, edx
setne bl
xor eax, eax
cmp dword [esp + 0x68], 0
setne al
test eax, ebx
je 0x7d074c
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
sub edx, dword [esp + 0x60]
sub ebx, dword [esp + 0x5c]
mov eax, edx
mov ecx, ebx
sar eax, 0x1f
sar ecx, 0x1f
xor edx, eax
xor ebx, ecx
sub edx, eax
sub ebx, ecx
cmp edx, ebx
jle 0x7d0604
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0xc0], 3
lea edx, [edi + eax]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], ecx
mov word [ecx], dx
jg 0x7d0632
mov eax, dword [ebp + 0xa34]
mov edi, dword [esp + 0xa8]
imul eax, edx
mov ebx, 0
or edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xc0]
cmovne ebx, dword [esp + 0x98]
add ecx, ecx
mov word [esi], ax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x9c], 1
mov ebx, dword [ebp + edx*4 + 0x202c]
mov dword [esp + 0x94], ecx
shl ebx, 5
movzx eax, byte [ebp + 0x2cb4]
add ebx, dword [ebp + 0xa54]
cmp eax, dword [esp + 0xb0]
je 0x7d0916
mov edi, dword [esp + 0xd0]
test edi, edi
je 0x7d076b
lea ecx, [ebx - 0x20]
mov dword [esp + 0x1c], ecx
test edi, edi
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x34]
movsx ecx, byte [eax + edx]
setne dl
xor eax, eax
cmp dword [esp + 0xa4], 0
mov dword [esp + 0x90], ecx
setne al
test eax, edx
je 0x7d0354
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x7d0354
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x88]
movsx eax, byte [edx + ecx - 1]
mov dword [esp + 0x8c], eax
test edi, edi
sete dl
xor eax, eax
cmp dword [esp + 0xa8], 0
setne al
test eax, edx
je 0x7d0393
mov ecx, dword [esp + 0x88]
cmp dword [esp + 0x30], ecx
jg 0x7d0393
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub ecx, edx
mov dword [esp + 0x88], ecx
movsx edx, byte [ecx + eax]
mov dword [esp + 0x8c], edx
test edi, edi
setne dl
xor ecx, ecx
cmp dword [esp + 0xc0], 1
sete cl
test ecx, edx
mov edx, dword [esp + 0x90]
cmove edx, dword [esp + 0x8c]
test edi, edi
sete cl
xor eax, eax
cmp dword [esp + 0xc0], 2
sete al
test eax, ecx
mov ecx, dword [esp + 0xb8]
cmovne edx, dword [esp + 0x90]
cmp dword [esp + 0xc0], 3
cmove edx, dword [esp + 0x90]
test ecx, ecx
mov dword [esp + 0x20], edx
je 0x7d0789
mov dword [esp + 0xc4], 0
mov dword [esp + 0x50], 0xd4a420
mov eax, dword [ebp + 0xa60]
test eax, eax
je 0x7d042a
mov dword [esp + 0x50], 0xd4a460
test edi, edi
mov edi, 0xd4a4a0
cmove edi, dword [esp + 0x50]
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0xc4]
test edx, edx
jne 0x7d04bc
lea edi, [esp + 0xc8]
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0xcc]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea edx, [esp + 0xc4]
mov eax, ebp
call fcn.007ccc0e
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x9c], ecx
cmp dword [esp + 0x9c], 0x3f
jg 0x7d0fce
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x50]
movsx edx, byte [ecx + eax]
add ecx, 1
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xc4]
mov word [esi + edx*2], ax
test ecx, ecx
je 0x7d0440
mov edi, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x24]
test edx, edx
je 0x7d057b
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x20]
test edx, edx
setne cl
xor eax, eax
cmp dword [esp + 0x90], edi
setne al
test eax, ecx
je 0x7d0c33
movzx ecx, byte [ebp + 0x2cb4]
mov edx, dword [esp + 0x90]
movzx eax, cl
add edx, edx
cmp eax, dword [esp + 0x90]
je 0x7d0dc8
sub edx, 1
mov dword [esp + 0x4c], edx
movzx eax, cl
mov edx, dword [esp + 0x20]
add edx, edx
cmp eax, dword [esp + 0x20]
je 0x7d0db8
sub edx, 1
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xd0]
test edx, edx
je 0x7d0d57
mov eax, dword [esp + 0x4c]
mov ecx, 1
mov edx, 0x10
mov edi, dword [eax*4 + 0xd489bc]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x1c]
movsx eax, word [edi + ecx*2]
add ecx, 1
imul eax, dword [esp + 0x18]
imul eax, dword [esp + 0x3c]
add eax, 0x20000
sar eax, 0x12
add word [edx + esi], ax
add edx, 0x10
cmp ecx, 7
jle 0x7d0552
mov ecx, 1
lea edx, [esi + 0x10]
movzx eax, word [edx]
add edx, 0x10
mov word [ebx + ecx*2], ax
movzx edi, word [esi + ecx*2]
mov word [ebx + ecx*2 + 0x10], di
add ecx, 1
cmp ecx, 7
jle 0x7d0583
mov ebx, 1
movzx eax, word [esi + ebx*2]
test ax, ax
je 0x7d05e0
cwde
imul eax, dword [esp + 0x94]
mov word [esi + ebx*2], ax
cmp byte [ebp + 0x2d05], 0
jne 0x7d05e0
movsx edx, ax
mov ecx, edx
add edx, dword [esp + 0xb0]
sub cx, word [esp + 0xb0]
test ax, ax
cmovns ecx, edx
mov word [esi + ebx*2], cx
add ebx, 1
cmp ebx, 0x3f
jle 0x7d05a3
mov esi, dword [esp + 0x24]
test esi, esi
je 0x7d0a52
mov dword [esp + 0x9c], 0x3f
jmp 0x7d0a52
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
lea edx, [edi + eax]
cmp dword [esp + 0xc0], 3
mov dword [esp + 0xd0], 1
mov dword [esp + 0xd4], ecx
mov word [ecx], dx
jle 0x7d027f
mov eax, dword [ebp + 0xa38]
jmp 0x7d0285
mov dword [ebp + 0x2cd4], 4
jmp 0x7cfa1c
mov ebx, dword [ebp + 0x2904]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebp + 0x2934]
shl ebx, 4
mov dword [esp + 0x74], edx
mov edi, dword [ebx + 0x1290154]
mov ebx, dword [ecx + 8]
mov eax, ebx
mov ecx, ebx
sar eax, 3
and ecx, 7
mov eax, dword [eax + edx]
bswap eax
shl eax, cl
shr eax, 0xf7
movsx edx, word [edi + eax*4]
mov dword [esp + 0x78], edx
movsx edx, word [edi + eax*4 + 2]
test edx, edx
jns 0x7d06fb
add ebx, 9
mov ecx, dword [esp + 0x74]
neg edx
mov eax, ebx
mov dword [esp + 0x70], edx
sar eax, 3
mov eax, dword [eax + ecx]
mov ecx, ebx
bswap eax
and ecx, 7
shl eax, cl
movzx ecx, byte [esp + 0x70]
neg cl
shr eax, cl
add eax, dword [esp + 0x78]
movsx edx, word [edi + eax*4]
mov dword [esp + 0x78], edx
movsx edx, word [edi + eax*4 + 2]
test edx, edx
jns 0x7d06fb
add ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov eax, ebx
sar eax, 3
mov eax, dword [eax + ecx]
mov ecx, ebx
bswap eax
and ecx, 7
shl eax, cl
mov ecx, edx
shr eax, cl
add eax, dword [esp + 0x78]
movsx edx, word [edi + eax*4]
mov dword [esp + 0x78], edx
movsx edx, word [edi + eax*4 + 2]
add ebx, edx
mov edi, dword [esp + 0x40]
mov dword [edi + 8], ebx
mov edi, dword [esp + 0x78]
test edi, edi
jge 0x7cffdf
mov dword [esp + 8], 0xcc9de0
mov dword [esp + 4], 0x10
mov ebx, dword [ebp]
mov dword [esp], ebx
call fcn.00961b69
mov esi, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], esi
jmp 0x7d0a67
mov ebx, dword [ebp + 0x2cd8]
mov dword [esp + 0xa0], ebx
jmp 0x7cfeb9
mov ebx, dword [esp + 0x6c]
test ebx, ebx
jne 0x7d0251
mov edx, dword [esp + 0x68]
test edx, edx
jne 0x7d0604
xor eax, eax
jmp 0x7d0608
mov ecx, dword [esp + 0xc0]
mov edx, ebx
mov eax, dword [ebp + ecx*4 + 0x2044]
shl eax, 5
sub edx, eax
mov dword [esp + 0x1c], edx
jmp 0x7d0306
cld
mov ecx, 8
mov edi, ebx
mov eax, dword [esp + 0xb8]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xd0]
test edi, edi
je 0x7d092b
mov edx, dword [esp + 0x24]
test edx, edx
je 0x7d0c24
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov dword [ebx], eax
mov edi, dword [edx + 4]
mov dword [ebx + 4], edi
mov ecx, dword [edx + 8]
mov dword [ebx + 8], ecx
mov eax, dword [edx + 0xc]
mov dword [ebx + 0xc], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
test edi, edi
setne dl
xor eax, eax
cmp dword [esp + 0x90], ecx
setne al
test eax, edx
je 0x7d085f
movzx ecx, byte [ebp + 0x2cb4]
mov edx, dword [esp + 0x90]
movzx edi, cl
add edx, edx
cmp edi, dword [esp + 0x90]
je 0x7d0e79
sub edx, 1
mov dword [esp + 0x48], edx
movzx eax, cl
mov edx, dword [esp + 0x20]
add edx, edx
cmp eax, dword [esp + 0x20]
lea edi, [edx - 1]
jne 0x7d0831
movzx ecx, byte [ebp + 0x2cfc]
lea edi, [edx + ecx - 1]
mov eax, dword [esp + 0x48]
mov edx, 1
mov ecx, dword [eax*4 + 0xd489bc]
movsx eax, word [ebx + edx*2]
imul eax, edi
imul eax, ecx
add eax, 0x20000
sar eax, 0x12
mov word [ebx + edx*2], ax
add edx, 1
cmp edx, 7
jle 0x7d0841
mov edx, dword [esp + 0x24]
test edx, edx
je 0x7d09f5
mov edi, dword [esp + 0xd0]
mov edx, 1
test edi, edi
je 0x7d08ea
mov ecx, 0x10
movsx eax, word [ebx + edx*2]
imul eax, dword [esp + 0x94]
mov word [ecx + esi], ax
cmp byte [ebp + 0x2d05], 0
jne 0x7d08b0
test ax, ax
je 0x7d08b0
cwde
jl 0x7d0e89
add eax, dword [esp + 0xb0]
mov word [ecx + esi], ax
add edx, 1
add ecx, 0x10
cmp edx, 7
jle 0x7d0880
mov ebx, dword [ebp + 0x29f0]
mov dword [esp + 0x9c], 0x3f
mov dword [esp + 0x2c], ebx
jmp 0x7d0a52
sub ax, word [esp + 0xb0]
mov word [esi + edx*2], ax
add edx, 1
cmp edx, 7
jg 0x7d08bb
movsx eax, word [ebx + edx*2 + 0x10]
imul eax, dword [esp + 0x94]
mov word [esi + edx*2], ax
cmp byte [ebp + 0x2d05], 0
jne 0x7d08e1
test ax, ax
je 0x7d08e1
cwde
jl 0x7d08d5
add eax, dword [esp + 0xb0]
jmp 0x7d08dd
movzx eax, byte [ebp + 0x2cfc]
add ecx, eax
mov dword [esp + 0x94], ecx
jmp 0x7d02f0
mov edx, dword [esp + 0x24]
test edx, edx
je 0x7d0a48
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [edx + 0x14]
mov dword [ebx + 0x14], ecx
mov edi, dword [edx + 0x18]
mov dword [ebx + 0x18], edi
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x1c], eax
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x20]
test ecx, ecx
setne dl
xor eax, eax
cmp dword [esp + 0x90], edi
setne al
test eax, edx
je 0x7d085f
movzx ecx, byte [ebp + 0x2cb4]
mov edx, dword [esp + 0x90]
movzx edi, cl
add edx, edx
cmp edi, dword [esp + 0x90]
je 0x7d0ecb
sub edx, 1
mov dword [esp + 0x44], edx
movzx eax, cl
mov edx, dword [esp + 0x20]
add edx, edx
cmp eax, dword [esp + 0x20]
lea edi, [edx - 1]
jne 0x7d09b9
movzx ecx, byte [ebp + 0x2cfc]
lea edi, [edx + ecx - 1]
mov eax, dword [esp + 0x44]
mov edx, 1
mov ecx, dword [eax*4 + 0xd489bc]
movsx eax, word [ebx + edx*2 + 0x10]
imul eax, edi
imul eax, ecx
add eax, 0x20000
sar eax, 0x12
mov word [ebx + edx*2 + 0x10], ax
add edx, 1
cmp edx, 7
jle 0x7d09c9
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x7d086b
mov eax, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], eax
jmp 0x7d0a52
cmp dword [esp + 0xb0], 1
je 0x7d0d91
cmp dword [esp + 0xb0], 2
je 0x7d0e3d
mov edi, ebx
mov eax, dword [esp + 0x40]
mov ecx, ebx
sar edi, 3
mov edx, dword [eax]
and ecx, 7
mov eax, dword [edi + edx]
add ebx, 8
mov edi, dword [esp + 0x40]
bswap eax
shl eax, cl
shr eax, 0xf8
mov dword [edi + 8], ebx
mov edi, eax
jmp 0x7d000c
mov ecx, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x9c]
mov edi, dword [esp + 0xc0]
mov dword [ebp + edi*4 + 0x22c8], edx
mov ebx, dword [esp + 0xc0]
shl ebx, 7
add ebx, dword [esp + 0x2c]
mov dword [esp], ebx
call dword [ebp + 0x1770]
xor ecx, ecx
mov edx, dword [ebp + 0x29f0]
mov esi, dword [esp + 0x28]
add esi, ecx
add ecx, 1
sub word [edx + esi*2], 0xff80
cmp ecx, 0x3f
jle 0x7d0a86
add dword [esp + 0xc0], 1
add dword [esp + 0x28], 0x40
cmp dword [esp + 0xc0], 5
jle 0x7cfd7b
mov eax, ebp
call fcn.007ca060
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x7d0b58
mov eax, dword [ebp + 0x2018]
test eax, eax
jne 0x7d10c4
mov edx, dword [ebp + 0xb8]
mov dword [esp + 4], edx
mov ebx, dword [ebp + 0x205c]
add ebx, 8
mov dword [esp], ebx
call dword [ebp + 0x1794]
mov eax, dword [ebp + 0xb8]
mov dword [esp + 4], eax
mov edi, dword [ebp + 0x205c]
lea ecx, [edi + eax*8 + 8]
mov dword [esp], ecx
call dword [ebp + 0x1794]
mov esi, dword [ebp + 0x2910]
test esi, esi
je 0x7d104e
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 4], ecx
mov edx, dword [ebp + 0x205c]
lea esi, [edx + ecx*8]
mov dword [esp], esi
call dword [ebp + 0x1790]
mov edi, dword [ebp + 0xb8]
mov dword [esp + 4], edi
mov ebx, dword [ebp + 0x205c]
lea eax, [ebx + edi*8 + 8]
mov dword [esp], eax
call dword [ebp + 0x1790]
mov eax, dword [ebp + 0x278c]
test eax, eax
je 0x7d0bf7
mov edi, dword [ebp + 0x2910]
movzx esi, byte [ebp + 0x2cb4]
test edi, edi
je 0x7d102c
mov dword [esp + 8], esi
mov edi, dword [ebp + 0xb8]
mov dword [esp + 4], edi
mov ebx, dword [ebp + 0x205c]
lea eax, [ebx + edi*8]
mov dword [esp], eax
call dword [ebp + 0x17a8]
mov edx, dword [ebp + 0x2018]
cmp edx, 1
sbb ebx, ebx
and ebx, 8
mov dword [esp + 8], esi
mov edx, dword [ebp + 0xb8]
mov dword [esp + 4], edx
mov ecx, dword [ebp + 0x205c]
add ecx, ebx
add ebx, 8
mov dword [esp], ecx
call dword [ebp + 0x17ac]
cmp ebx, 0xf
jle 0x7d0ba9
xor ebx, ebx
mov eax, dword [ebp + 0x2910]
test eax, eax
je 0x7d0fdd
mov edx, dword [ebp + 0x2018]
test edx, edx
jne 0x7d1009
add ebx, 1
cmp ebx, 1
jle 0x7d0bd3
mov esi, dword [ebp + 0x2c1c]
mov ebx, dword [esp + 0x40]
cmp dword [ebx + 8], esi
jg 0x7d113a
mov ecx, dword [ebp + 0x2018]
add ecx, 1
cmp ecx, dword [ebp + 0x98]
mov dword [ebp + 0x2018], ecx
jmp 0x7cfb15
mov esi, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], esi
jmp 0x7d0a52
mov ecx, dword [esp + 0xd0]
mov edx, 1
test ecx, ecx
je 0x7d0c66
mov ecx, 1
mov dl, 0x10
mov edi, dword [esp + 0x1c]
movzx eax, word [edi + ecx*2]
add ecx, 1
add word [edx + esi], ax
add edx, 0x10
cmp ecx, 7
jle 0x7d0c4a
jmp 0x7d057b
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + edx*2 + 0x10]
add word [esi + edx*2], ax
add edx, 1
cmp edx, 7
jg 0x7d057b
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + edx*2 + 0x10]
add word [esi + edx*2], ax
add edx, 1
cmp edx, 7
jle 0x7d0c66
jmp 0x7d057b
mov ecx, dword [esp + 0x40]
mov eax, ebx
mov edx, dword [ecx]
mov ecx, ebx
sar eax, 3
and ecx, 7
mov eax, dword [eax + edx]
add ebx, 2
bswap eax
shl eax, cl
mov ecx, dword [esp + 0x40]
shr eax, 0xfe
lea edi, [eax + edi*4 - 3]
mov dword [ecx + 8], ebx
jmp 0x7d000c
mov ebx, dword [ebp + 0x2f48]
mov edx, dword [esp + 0xb4]
movzx eax, byte [edx + ebx]
mov dword [ebp + 0xa60], eax
movzx eax, byte [ebp + 0x2f58]
cmp al, 2
jne 0x7cfc71
mov eax, dword [ebp + 0x2f54]
test eax, eax
je 0x7d0e63
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
mov esi, dword [edx + 8]
mov edi, esi
mov ecx, esi
add esi, 1
sar edi, 3
and ecx, 7
movzx eax, byte [edi + ebx]
shl al, cl
mov ecx, dword [esp + 0x40]
shr al, 7
mov dword [ecx + 8], esi
jmp 0x7cfc76
mov eax, ebx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
sar eax, 3
mov ecx, ebx
movzx eax, byte [eax + edx]
and ecx, 7
add ebx, 1
shl al, cl
mov ecx, dword [esp + 0x40]
shr al, 7
mov dword [ecx + 8], ebx
movzx eax, al
lea edi, [eax + edi*2 - 1]
jmp 0x7d000c
mov eax, dword [esp + 0x4c]
mov edx, 1
mov ecx, dword [eax*4 + 0xd489bc]
mov edi, dword [esp + 0x1c]
movsx eax, word [edi + edx*2 + 0x10]
imul eax, dword [esp + 0x18]
imul eax, ecx
add eax, 0x20000
sar eax, 0x12
add word [esi + edx*2], ax
add edx, 1
cmp edx, 7
jle 0x7d0d67
jmp 0x7d057b
mov edi, dword [esp + 0x40]
mov eax, ebx
mov ecx, ebx
mov edx, dword [edi]
sar eax, 3
and ecx, 7
add ebx, 0xa
mov eax, dword [eax + edx]
bswap eax
mov dword [edi + 8], ebx
shl eax, cl
shr eax, 0xf6
mov edi, eax
jmp 0x7d000c
movzx ecx, byte [ebp + 0x2cfc]
lea edx, [edx + ecx - 1]
jmp 0x7d0526
movzx edi, byte [ebp + 0x2cfc]
lea edx, [edx + edi - 1]
jmp 0x7d050c
movzx ecx, byte [ebp + 0x2cc2]
mov edx, 1
shl edx, cl
jmp 0x7cfcbb
cmp byte [ebp + 0x2cc3], 0
je 0x7d0f01
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x40]
mov ebx, dword [eax + 8]
mov edx, dword [edi]
mov esi, ebx
mov ecx, ebx
add ebx, 1
sar esi, 3
and ecx, 7
movzx eax, byte [esi + edx]
mov dword [edi + 8], ebx
shl al, cl
test al, 0x80
je 0x7d0f37
movzx eax, byte [ebp + 0x2cb5]
mov dword [esp + 0xb0], eax
movzx eax, byte [ebp + 0x2cc1]
jmp 0x7cfc9c
mov edi, ebx
mov eax, dword [esp + 0x40]
mov ecx, ebx
sar edi, 3
mov edx, dword [eax]
and ecx, 7
mov eax, dword [edi + edx]
add ebx, 9
bswap eax
mov edi, dword [esp + 0x40]
shl eax, cl
shr eax, 0xf7
jmp 0x7d0a3e
mov eax, dword [ebp + 0x2f50]
mov esi, dword [esp + 0xb4]
movzx eax, byte [esi + eax]
jmp 0x7cfc79
movzx eax, byte [ebp + 0x2cfc]
lea edx, [edx + eax - 1]
jmp 0x7d080f
sub ax, word [esp + 0xb0]
jmp 0x7d08ac
movzx edx, byte [ebp + 0x2cc2]
mov ebx, 3
mov edi, 0x88888889
mov ecx, edx
shl ebx, cl
mov eax, ebx
imul edi
mov eax, ebx
add edx, ebx
sar eax, 0x1f
sar edx, 3
sub edx, eax
mov esi, edx
shl esi, 4
sub esi, edx
mov edx, ebx
sub edx, esi
jmp 0x7cfcbb
movzx eax, byte [ebp + 0x2cfc]
lea edx, [edx + eax - 1]
jmp 0x7d0997
movzx edi, byte [ebp + 0x2cb5]
mov dword [esp + 0xb0], edi
jmp 0x7cfd29
movzx ebx, byte [ebp + 0x2cb5]
mov dword [esp + 0xb0], ebx
jmp 0x7cfd0f
mov edi, dword [esp + 0x40]
mov edx, dword [edi + 8]
mov esi, dword [edi]
mov eax, edx
mov ecx, edx
and ecx, 7
sar eax, 3
mov ebx, dword [eax + esi]
bswap ebx
shl ebx, cl
lea ecx, [edx + 3]
shr ebx, 0xfd
cmp ebx, 7
mov dword [edi + 8], ecx
je 0x7d0f43
movzx eax, byte [ebp + 0x2cb4]
add eax, ebx
jmp 0x7d0e2a
movzx eax, byte [ebp + 0x2cb4]
jmp 0x7d0e2a
mov edi, ecx
and ecx, 7
add edx, 8
sar edi, 3
mov ebx, dword [esp + 0x40]
mov eax, dword [edi + esi]
bswap eax
shl eax, cl
mov dword [ebx + 8], edx
shr eax, 0xfb
jmp 0x7d0e2a
mov dword [ebp + 0x2cd8], 1
jmp 0x7cfa41
test eax, eax
jne 0x7cfa41
xor edx, edx
cmp dword [ebp + 0x2cdc], 8
setle dl
lea esi, [edx*4 + 3]
mov dword [ebp + 0x2cd8], esi
jmp 0x7cfa41
test eax, eax
jne 0x7cfa1c
xor ebx, ebx
cmp dword [ebp + 0x2cdc], 8
setle bl
lea ecx, [ebx*4 + 2]
mov dword [ebp + 0x2cd4], ecx
jmp 0x7cfa1c
mov dword [ebp + 0x2cd4], 0
jmp 0x7cfa1c
mov ecx, dword [ebp + 0x29f0]
mov dword [esp + 0x2c], ecx
jmp 0x7d04bc
mov dword [esp + 8], esi
mov ecx, dword [ebp + 0xbc]
mov dword [esp + 4], ecx
mov edi, dword [ebp + ebx*4 + 0x2060]
mov dword [esp], edi
call dword [ebp + 0x17a0]
mov edx, dword [ebp + 0x2018]
test edx, edx
je 0x7d0bef
mov dword [esp + 8], esi
mov edi, dword [ebp + 0xbc]
mov dword [esp + 4], edi
mov eax, dword [ebp + ebx*4 + 0x2060]
mov dword [esp], eax
call dword [ebp + 0x17a4]
jmp 0x7d0bef
mov dword [esp + 8], esi
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 0x205c]
mov dword [esp], ebx
call dword [ebp + 0x17a8]
jmp 0x7d0b7b
mov edi, dword [ebp + 0xb8]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x205c]
mov dword [esp], eax
call dword [ebp + 0x1790]
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 4], ecx
mov esi, dword [ebp + 0x205c]
add esi, 8
mov dword [esp], esi
call dword [ebp + 0x1790]
test byte [ebp + 0x3d], 0x20
jne 0x7d0b1f
mov ecx, dword [ebp + 0xbc]
mov dword [esp + 4], ecx
mov esi, dword [ebp + 0x2060]
mov dword [esp], esi
call dword [ebp + 0x1790]
mov edx, dword [ebp + 0xbc]
mov dword [esp + 4], edx
mov ebx, dword [ebp + 0x2064]
mov dword [esp], ebx
call dword [ebp + 0x1790]
jmp 0x7d0b1f
mov ecx, dword [ebp + 0xb8]
mov dword [esp + 4], ecx
mov esi, dword [ebp + 0x205c]
mov dword [esp], esi
call dword [ebp + 0x1794]
mov ebx, dword [ebp + 0xb8]
mov dword [esp + 4], ebx
mov edx, dword [ebp + 0x205c]
lea edi, [edx + ebx*8]
mov dword [esp], edi
call dword [ebp + 0x1794]
test byte [ebp + 0x3d], 0x20
jne 0x7d0ad8
mov edx, dword [ebp + 0xbc]
mov dword [esp + 4], edx
mov ebx, dword [ebp + 0x2060]
mov dword [esp], ebx
call dword [ebp + 0x1794]
mov edi, dword [ebp + 0xbc]
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x2064]
mov dword [esp], eax
call dword [ebp + 0x1794]
jmp 0x7d0ad8
mov dword [esp + 0x14], 0x70
mov edx, dword [ebp + 0x201c]
mov dword [esp + 0x10], edx
mov esi, dword [ebp + 0x2018]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp + 0xc], esi
mov dword [esp], ebp
call fcn.00938160
mov ecx, dword [esp + 0x40]
mov eax, dword [ebp + 0x2c1c]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0xcc9e40
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0x10
mov edi, dword [ebp]
mov dword [esp], edi
call fcn.00961b69
jmp 0x7cfaab