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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x168
push ebx
push esi
push edi
mov esi, ecx
push 0x80
lea eax, [esi + 0x1934]
push 0
push eax
mov dword [ebp + 0x54], esi
call fcn.3022b3a0
mov ebx, dword [esi + 4]
and dword [ebp + 0x4c], 0
add esp, 0xc
test ebx, ebx
mov dword [ebp + 0x50], 1
je 0x3007780e
xor edi, edi
cmp dword [ebx + 0x160], edi
je 0x30076fd3
mov dword [ebp + 0x50], edi
jmp 0x300777fe
cmp dword [ebx + 0x2c], edi
jne 0x300777fe
cmp byte [esi + 0x1130], 0
mov dword [ebp + 0x50], edi
je 0x30076ff9
mov ecx, ebx
call fcn.30075c78
mov ecx, dword [ebp + 0x4c]
mov dword [esi + ecx*4 + 0x1934], eax
cmp dword [ebp + 0x4c], 0x20
mov dword [ebp + 0x64], edi
jge 0x3007701d
mov ecx, esi
call fcn.300760fb
cmp eax, edi
mov dword [ebp + 0x64], eax
je 0x3007701d
mov ecx, dword [ebp + 0x4c]
inc dword [ebp + 0x4c]
mov dword [ebp + ecx*4 - 0xf4], eax
mov edx, dword [ebx + 0x3c]
mov eax, dword [edx]
mov ecx, eax
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x30236620]
test al, 2
mov dword [ebp + 0x5c], ecx
push 0
pop ecx
setne cl
mov edi, dword [esi + 0xc]
push 0
mov dword [ebp + 0x58], edx
inc ecx
test al, 1
pop eax
setne al
inc eax
imul ecx, eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x5c]
sar edi, cl
mov dword [ebp + 0x6c], eax
xor eax, eax
cmp dword [ebx + 0x98], eax
mov dword [ebp + 0x70], edi
je 0x3007725a
cmp edi, eax
mov ecx, dword [ebp + 0x7c]
mov dword [ebx + ecx*4 + 0xa4], eax
jle 0x300771cf
mov eax, dword [ebx + 0x12c]
cmp edi, eax
jge 0x3007708c
mov eax, edi
test eax, eax
mov dword [ebp + 0x70], eax
jl 0x300771cf
jle 0x30077115
cmp byte [ebx + 0x136], 0
je 0x300770bc
cmp dword [ebp + 0x6c], 0
je 0x300770e3
imul eax, dword [ebp + 0x60]
push eax
push 0
push dword [ebp + 0x6c]
call fcn.3022b3a0
add esp, 0xc
jmp 0x300770e0
push dword [ebp + 0x70]
mov ecx, dword [ebx + 0x154]
push dword [ebp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
mov dword [ebp + 0x70], eax
jne 0x300770e0
cmp byte [ebx + 0x137], al
jne 0x300771cf
mov eax, dword [ebp + 0x70]
cmp byte [ebx + 0x137], 0
jne 0x300770f6
mov ecx, dword [ebp + 0x7c]
add dword [ebx + ecx*4 + 0xa4], eax
cmp dword [ebp + 0x6c], 0
je 0x30077105
mov ecx, eax
imul ecx, dword [ebp + 0x60]
add dword [ebp + 0x6c], ecx
sub dword [ebx + 0x12c], eax
sub edi, eax
test eax, eax
jg 0x300771c7
push ebx
call dword [ebx + 0x98]
neg eax
sbb al, al
inc al
pop ecx
mov byte [ebx + 0x137], al
jne 0x30077132
and dword [ebx + 0x13c], 0
xor edx, edx
cmp dword [ebx + 0x12c], edx
jg 0x3007716f
lea eax, [ebx + 0x134]
cmp byte [eax], dl
je 0x3007715a
lea ecx, [ebx + 0x130]
mov byte [eax], dl
mov eax, dword [ecx]
cmp eax, edx
jge 0x30077166
neg eax
mov dword [ecx], edx
jmp 0x30077160
mov eax, dword [ebp + 0x58]
mov eax, dword [eax + 4]
mov dword [ebx + 0x12c], eax
mov byte [ebx + 0x136], 1
jmp 0x30077176
mov byte [ebx + 0x136], 0
mov ecx, dword [ebx + 0x174]
cmp ecx, edx
je 0x300771c7
cmp dword [ebx + 0x12c], edx
je 0x300771c7
cmp byte [ebx + 0x136], 0
jne 0x300771c7
push 1
call fcn.30087887
test eax, eax
je 0x300771c7
mov ecx, dword [ebp + 0x58]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
sar edx, 2
and edx, 3
mov dword [ebp + 0x68], ecx
mov ecx, dword [edx*4 + 0x30236620]
mov edx, dword [ebp + 0x68]
shl edx, cl
mov ecx, dword [eax + 0x34]
add edx, dword [ecx + 4]
mov ecx, eax
push edx
call fcn.3008b32f
test edi, edi
jg 0x30077080
lea eax, [ebx + 0x135]
cmp byte [eax], 0
je 0x3007722c
mov byte [eax], 0
xor eax, eax
mov dword [ebp - 0x20], eax
mov word [ebp - 0x1a], ax
mov word [ebp - 0x1c], ax
mov eax, dword [esi + 0xc]
mov ecx, 0x2b11
cmp eax, ecx
mov dword [ebp - 0x24], 2
mov dword [ebp - 0x18], eax
jl 0x30077203
mov dword [ebp - 0x18], ecx
cmp dword [ebp + 0x64], 0
mov word [ebp - 0x12], 0x8000
mov word [ebp - 0x14], 0x8000
je 0x3007722c
lea ecx, [ebp - 0x24]
push ecx
push 0
push eax
push dword [ebp + 0x64]
mov eax, dword [ebp + 0x58]
push dword [eax]
call fcn.3008862e
add esp, 0x14
mov ecx, dword [ebx + 0x9c]
test ecx, ecx
je 0x30077502
call fcn.3008b76b
cmp dword [eax + 4], 0
je 0x30077502
xor eax, eax
inc eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x170], eax
jmp 0x300774fb
cmp dword [ebx + 0x158], eax
je 0x300773d8
cmp edi, eax
mov ecx, dword [ebp + 0x7c]
mov dword [ebx + ecx*4 + 0xa4], eax
jle 0x30077502
mov eax, dword [ebx + 0x148]
sub eax, dword [ebx + 0x144]
cmp edi, eax
jge 0x3007728a
mov eax, edi
test eax, eax
mov dword [ebp + 0x70], eax
jl 0x30077502
and dword [ebp + 0x68], 0
test eax, eax
jle 0x300772c0
cmp byte [edx + 0x15], 0
je 0x300772a9
cmp byte [edx + 0x14], 0
je 0x300772c0
push dword [ebp + 0x70]
mov ecx, dword [ebx + 0x154]
push dword [ebp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 0x58]
mov dword [ebp + 0x68], eax
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x7c]
add dword [ebx + eax*4 + 0xa4], ecx
cmp ecx, dword [ebp + 0x70]
jl 0x300772f2
cmp dword [ebp + 0x70], 0
je 0x300772f2
cmp dword [ebp + 0x6c], 0
je 0x300772e8
mov eax, dword [ebp + 0x70]
imul eax, dword [ebp + 0x60]
add dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x70]
sub edi, eax
jmp 0x3007738e
cmp byte [edx + 0x14], 0
je 0x30077343
lea eax, [ebx + 0x8c]
dec dword [eax]
cmp dword [eax], 0
jle 0x300773a1
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0x5c]
sar eax, cl
mov ecx, dword [ebx + 0x154]
push 0
push 1
push dword [ebp + 0x58]
mov dword [ebx + 0x144], eax
mov eax, dword [ecx]
call dword [eax]
push dword [ebx + 0x144]
mov ecx, dword [ebx + 0x154]
mov eax, dword [ecx]
push 0
call dword [eax + 4]
mov edx, dword [ebp + 0x58]
jmp 0x30077394
cmp dword [ebp + 0x6c], 0
mov byte [edx + 0x15], 1
je 0x30077388
mov eax, dword [ebp + 0x70]
sub eax, dword [ebp + 0x68]
imul eax, dword [ebp + 0x60]
push eax
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
shr eax, 1
not eax
and eax, 1
shl eax, 7
push eax
mov eax, dword [ebp + 0x68]
imul eax, dword [ebp + 0x60]
add eax, dword [ebp + 0x6c]
push eax
call fcn.3022b3a0
mov eax, dword [ebp + 0x70]
imul eax, dword [ebp + 0x60]
mov edx, dword [ebp + 0x58]
add esp, 0xc
add dword [ebp + 0x6c], eax
sub edi, dword [ebp + 0x70]
mov eax, dword [ebp + 0x68]
add dword [ebx + 0x144], eax
test edi, edi
jg 0x30077278
jmp 0x30077502
cmp dword [ebp + 0x6c], 0
je 0x300773c7
imul edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
shr eax, 1
not eax
and eax, 1
push edi
shl eax, 7
push eax
push dword [ebp + 0x6c]
call fcn.3022b3a0
add esp, 0xc
xor eax, eax
inc eax
mov dword [ebx + 0x170], eax
mov dword [ebx + 0x2c], eax
jmp 0x300774fb
cmp edi, eax
jle 0x30077502
mov eax, dword [ebx + 0x148]
sub eax, dword [ebx + 0x144]
cmp edi, eax
jge 0x300773f2
mov eax, edi
xor ecx, ecx
cmp eax, ecx
mov dword [ebp + 0x68], eax
jl 0x30077502
jg 0x30077449
lea eax, [ebx + 0x8c]
dec dword [eax]
cmp dword [eax], ecx
jle 0x300774b9
mov eax, dword [ebx + 0x90]
mov ecx, dword [ebp + 0x5c]
sar eax, cl
push 0
lea edi, [ebx + 0x154]
mov ecx, dword [edi]
push 1
push dword [ebp + 0x58]
mov dword [ebx + 0x144], eax
mov eax, dword [ecx]
call dword [eax]
mov edi, dword [edi]
push dword [ebx + 0x144]
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 4]
mov edi, dword [ebp + 0x70]
push dword [ebp + 0x68]
mov ecx, dword [ebx + 0x154]
push dword [ebp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 0x6c], 0
je 0x3007746a
mov eax, dword [ebp + 0x68]
imul eax, dword [ebp + 0x60]
add dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x68]
mov ecx, dword [ebx + 0x174]
add dword [ebx + 0x144], eax
sub edi, eax
test ecx, ecx
mov dword [ebp + 0x70], edi
je 0x300774af
push 1
call fcn.30087887
test eax, eax
je 0x300774af
mov ecx, dword [ebp + 0x58]
mov ecx, dword [ecx]
mov edx, dword [ebx + 0x144]
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x30236620]
shl edx, cl
mov ecx, eax
push edx
call fcn.3008b32f
test edi, edi
jg 0x300773e0
jmp 0x30077502
mov eax, dword [ebx + 0x38]
cmp eax, ecx
je 0x300774cf
cmp dword [eax + 0x68], ecx
je 0x300774cf
mov dword [ebx + 0x170], 1
cmp dword [ebp + 0x6c], ecx
je 0x300774f4
imul edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
shr eax, 1
not eax
and eax, 1
push edi
shl eax, 7
push eax
push dword [ebp + 0x6c]
call fcn.3022b3a0
add esp, 0xc
mov dword [ebx + 0x2c], 1
mov byte [esi + 0x19b4], 1
cmp dword [ebp + 0x64], 0
je 0x30077579
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x5c]
push dword [ebp + 0x60]
sar eax, cl
dec eax
imul eax, dword [ebp + 0x60]
add eax, dword [ebp + 0x64]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.3008862e
lea edi, [ebx + 0x14c]
add esp, 0xc
cmp dword [edi], 0
jne 0x3007754e
push dword [ebp + 0x60]
lea eax, [ebx + 0x150]
push dword [ebp + 0x64]
push eax
call fcn.3008862e
add esp, 0xc
mov dword [edi], 1
mov eax, dword [ebp + 0x58]
mov eax, dword [eax]
lea edi, [ebx + 0x150]
push edi
push dword [esi + 0x1d3c]
and eax, 0xffffff0f
push eax
push dword [esi + 0xc]
push dword [ebp + 0x64]
call fcn.3008862e
mov eax, dword [ebp + 0x34]
add esp, 0x14
mov dword [edi], eax
lea eax, [ebx + 0x44]
cmp dword [eax], 0
jle 0x300775ab
cmp dword [ebp + 0x64], 0
je 0x300775a2
push eax
push dword [ebx + 0x140]
push dword [esi + 0xc]
push dword [ebp + 0x64]
push dword [esi + 0x1d3c]
call fcn.3008862e
add esp, 0x14
mov eax, dword [esi + 0xc]
add dword [ebx + 0x140], eax
cmp dword [ebp + 0x64], 0
je 0x3007772a
mov edx, dword [ebx + 0x15c]
test edx, edx
je 0x30077614
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x3007772a
push 5
pop ecx
lea esi, [eax + 0x688]
push edx
lea eax, [ebp + 0x20]
push eax
lea edi, [ebp + 0x20]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.3008862e
mov eax, dword [ebp + 0x54]
mov ecx, dword [eax + 0x1d3c]
mov eax, dword [eax + 0xc]
lea edx, [ebp + 0x20]
push edx
push ecx
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x30236620]
sar eax, cl
push eax
push dword [ebp + 0x64]
call fcn.3008862e
add esp, 0x1c
jmp 0x30077727
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x300776e6
mov eax, dword [ecx + 0x50]
mov eax, dword [eax + 0xe0]
mov edi, dword [ecx + 0x54]
and dword [ebp + 0x44], 0
and dword [ebp + 0x40], 0
mov dword [ebp + 0x68], eax
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + 0xd0]
push 0x64
pop eax
add edx, 0x688
test edi, edi
mov dword [ebp + 0x5c], edx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x3c], eax
jne 0x30077673
call fcn.3008b76b
add eax, 0x3c
push eax
lea eax, [ebp + 0x38]
push eax
push eax
call fcn.3008862e
mov edx, dword [ebp + 0x5c]
add esp, 0xc
jmp 0x300776b0
cmp edi, dword [ebp + 0x68]
je 0x300776b0
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x78]
cmp eax, 0x62
je 0x3007768d
cmp eax, 6
je 0x3007768d
cmp eax, 0x61
jne 0x300776a9
mov ecx, dword [edi + 0x20]
call fcn.3008b76b
add eax, 0x3c
push eax
lea eax, [ebp + 0x38]
push eax
push eax
call fcn.3008862e
mov edx, dword [ebp + 0x5c]
add esp, 0xc
mov edi, dword [edi + 8]
test edi, edi
jne 0x30077673
push edx
lea eax, [ebp + 0x38]
push eax
push eax
call fcn.3008862e
mov eax, dword [esi + 0x1d3c]
mov edx, dword [esi + 0xc]
lea ecx, [ebp + 0x38]
push ecx
push eax
sar eax, 2
and eax, 3
mov ecx, dword [eax*4 + 0x30236620]
sar edx, cl
push edx
push dword [ebp + 0x64]
call fcn.3008862e
add esp, 0x1c
jmp 0x3007772a
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x3007772a
push 5
lea esi, [eax + 0x688]
mov eax, dword [ebp + 0x54]
pop ecx
lea edi, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x1d3c]
mov eax, dword [eax + 0xc]
lea edx, [ebp - 0x74]
push edx
push ecx
sar ecx, 2
and ecx, 3
mov ecx, dword [ecx*4 + 0x30236620]
sar eax, cl
push eax
push dword [ebp + 0x64]
call fcn.3008862e
add esp, 0x10
mov esi, dword [ebp + 0x54]
cmp dword [ebx + 0x164], 0
je 0x300777fe
mov ecx, dword [esi + 0x1d3c]
mov eax, ecx
shr eax, 1
not eax
test al, 1
jne 0x300777fe
mov eax, 0x7fff
mov dword [ebp + 0x70], eax
mov dword [ebp + 0x5c], eax
sar ecx, 2
mov eax, 0xffff8000
and ecx, 3
mov ecx, dword [ecx*4 + 0x30236620]
mov edx, eax
mov edi, eax
mov eax, dword [esi + 0xc]
sar eax, cl
xor ecx, ecx
test byte [esi + 0x1d3c], 1
movsx eax, ax
mov dword [ebp + 0x60], eax
jne 0x300777ab
test eax, eax
jle 0x300777ec
mov eax, dword [ebp + 0x64]
movsx eax, word [eax + ecx*2]
cmp dword [ebp + 0x70], eax
jl 0x30077795
mov dword [ebp + 0x70], eax
cmp edx, eax
mov edi, dword [ebp + 0x70]
mov dword [ebp + 0x5c], edi
jg 0x300777a1
mov edx, eax
inc ecx
cmp ecx, dword [ebp + 0x60]
mov edi, edx
jl 0x30077786
jmp 0x300777ec
test eax, eax
mov dword [ebp + 0x68], ecx
jle 0x300777ec
mov eax, dword [ebp + 0x64]
movsx eax, word [eax + ecx*4]
cmp dword [ebp + 0x70], eax
jl 0x300777c1
mov dword [ebp + 0x70], eax
cmp edx, eax
jg 0x300777c7
mov edx, eax
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x68]
movsx eax, word [eax + ecx*4 + 2]
cmp dword [ebp + 0x5c], eax
jl 0x300777da
mov dword [ebp + 0x5c], eax
cmp edi, eax
jg 0x300777e0
mov edi, eax
mov ecx, dword [ebp + 0x68]
inc ecx
cmp ecx, dword [ebp + 0x60]
mov dword [ebp + 0x68], ecx
jl 0x300777b2
sub edx, dword [ebp + 0x70]
sub edi, dword [ebp + 0x5c]
mov dword [ebx + 0x168], edx
mov dword [ebx + 0x16c], edi
mov ebx, dword [ebx + 0x24]
test ebx, ebx
jne 0x30076fc1
cmp dword [ebp + 0x50], ebx
je 0x30077813
inc dword [esi + 8]
jmp 0x30077817
and dword [esi + 8], 0
mov ecx, dword [esi + 0x1d3c]
mov eax, ecx
shr eax, 1
not eax
test al, 1
mov eax, dword [ebp + 0x7c]
mov ebx, dword [esi + eax*4 + 0x28]
mov eax, dword [ebp + 0x4c]
je 0x3007798f
test eax, eax
jne 0x30077847
push dword [esi + 0x24]
push 0x80
push ebx
jmp 0x300779be
cmp eax, 1
jne 0x30077860
push dword [esi + 0x24]
push dword [ebp - 0xf4]
push ebx
call fcn.3008862e
jmp 0x300779c3
cmp eax, 2
jne 0x300778b4
test cl, 1
mov edi, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
mov eax, dword [esi + 0x20]
je 0x3007787b
add eax, eax
test eax, eax
je 0x30077be2
mov dword [ebp + 0x7c], eax
movzx eax, byte [edx]
movzx ecx, byte [edi]
inc edx
lea ecx, [eax + ecx - 0x80]
inc edi
test ecx, 0xffff00
je 0x300778a7
test ecx, ecx
jge 0x300778a2
xor ecx, ecx
jmp 0x300778a7
mov ecx, 0xff
mov byte [ebx], cl
inc ebx
dec dword [ebp + 0x7c]
jne 0x30077886
jmp 0x30077be2
shl eax, 2
push eax
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.3008862e
mov eax, dword [esi + 0x20]
add esp, 0xc
test byte [esi + 0x1d3c], 1
mov dword [ebp + 0x70], ebx
mov dword [ebp + 0x7c], eax
je 0x30077980
add eax, eax
mov dword [ebp + 0x7c], eax
jmp 0x30077980
mov ecx, 0x400
cmp dword [ebp + 0x7c], ecx
jge 0x300778f8
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x50], ecx
jle 0x30077916
lea eax, [esi + 0x130]
mov edx, dword [ebp - 0x60]
movzx edx, byte [edx]
inc dword [ebp - 0x60]
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x30077905
mov eax, dword [ebp + 0x4c]
cmp eax, 1
jle 0x3007794a
dec eax
lea edx, [ebp - 0x5c]
mov dword [ebp + 0x54], eax
mov ebx, dword [ebp + 0x50]
test ebx, ebx
jle 0x30077942
lea eax, [esi + 0x130]
mov ecx, dword [edx]
movzx edi, byte [ecx]
add dword [eax], edi
inc ecx
add eax, 4
dec ebx
mov dword [edx], ecx
jne 0x30077932
add edx, 4
dec dword [ebp + 0x54]
jne 0x30077925
mov edi, dword [ebp + 0x50]
test edi, edi
jle 0x3007797d
lea ecx, [esi + 0x130]
mov edx, edi
mov eax, dword [ecx]
test eax, 0xffff00
je 0x3007796f
test eax, eax
jge 0x3007796a
xor eax, eax
jmp 0x3007796f
mov eax, 0xff
mov ebx, dword [ebp + 0x70]
inc dword [ebp + 0x70]
add ecx, 4
dec edx
mov byte [ebx], al
jne 0x30077959
sub dword [ebp + 0x7c], edi
cmp dword [ebp + 0x7c], 0
jg 0x300778eb
jmp 0x30077be2
test eax, eax
mov dword [ebp + 0x50], ebx
jne 0x300779cb
push dword [esi + 0x24]
push eax
push ebx
call fcn.3022b3a0
add esp, 0xc
cmp byte [esi + 0x1130], 0
je 0x30077be2
push 0x800
push 0
lea eax, [esi + 0x1132]
push eax
call fcn.3022b3a0
add esp, 0xc
jmp 0x30077be2
cmp eax, 1
jne 0x300779e4
push dword [esi + 0x24]
push dword [ebp - 0xf4]
push ebx
call fcn.3008862e
add esp, 0xc
jmp 0x30077a49
cmp eax, 2
jne 0x30077a97
test byte [esi + 0x1d3c], 1
mov edx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xf0]
mov eax, dword [esi + 0x20]
mov ecx, ebx
je 0x30077a09
add eax, eax
test eax, eax
je 0x30077a46
mov dword [ebp + 0x7c], eax
movsx ebx, word [edi]
movsx eax, word [edx]
add eax, ebx
inc edi
inc edi
inc edx
movsx ebx, ax
inc edx
cmp ebx, eax
je 0x30077a3c
xor ebx, ebx
test eax, eax
setge bl
dec ebx
and ebx, 0xffff0001
add ebx, 0x7fff
mov word [ecx], bx
jmp 0x30077a3f
mov word [ecx], ax
inc ecx
inc ecx
dec dword [ebp + 0x7c]
jne 0x30077a10
mov ebx, dword [ebp + 0x50]
cmp byte [esi + 0x1130], 0
je 0x30077be2
test byte [esi + 0x1d3c], 1
mov edi, dword [esi + 0x20]
je 0x30077baf
add edi, edi
xor ecx, ecx
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
cmp ecx, edi
jge 0x30077b8d
mov dx, word [ebx + ecx*2]
mov word [esi + eax*2 + 0x1132], dx
mov dx, word [ebx + ecx*2 + 2]
mov word [esi + eax*2 + 0x1532], dx
jmp 0x30077b9f
shl eax, 2
push eax
lea eax, [ebp - 0xf4]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.3008862e
mov eax, dword [esi + 0x20]
add esp, 0xc
test byte [esi + 0x1d3c], 1
mov dword [ebp + 0x7c], ebx
mov dword [ebp + 0x54], eax
je 0x30077b80
add eax, eax
jmp 0x30077b7d
mov ecx, dword [ebp + 0x54]
mov eax, 0x400
cmp ecx, eax
jl 0x30077ad9
mov ecx, eax
test ecx, ecx
mov dword [ebp + 0x70], ecx
jle 0x30077af8
lea eax, [esi + 0x130]
mov edx, dword [ebp - 0x60]
movsx edx, word [edx]
add dword [ebp - 0x60], 2
mov dword [eax], edx
add eax, 4
dec ecx
jne 0x30077ae6
mov eax, dword [ebp + 0x4c]
cmp eax, 1
jle 0x30077b33
dec eax
lea edx, [ebp - 0x5c]
mov dword [ebp + 0x5c], eax
cmp dword [ebp + 0x70], 0
jle 0x30077b2b
mov ebx, dword [ebp + 0x70]
lea eax, [esi + 0x130]
mov ecx, dword [edx]
movsx edi, word [ecx]
add dword [eax], edi
add ecx, 2
add eax, 4
dec ebx
mov dword [edx], ecx
jne 0x30077b16
mov ebx, dword [ebp + 0x50]
add edx, 4
dec dword [ebp + 0x5c]
jne 0x30077b07
cmp dword [ebp + 0x70], 0
jle 0x30077b77
mov edi, dword [ebp + 0x70]
lea ecx, [esi + 0x130]
mov eax, dword [ecx]
movsx edx, ax
cmp edx, eax
je 0x30077b67
xor edx, edx
test eax, eax
mov eax, dword [ebp + 0x7c]
setge dl
dec edx
and edx, 0xffff0001
add edx, 0x7fff
mov word [eax], dx
jmp 0x30077b6d
mov edx, dword [ebp + 0x7c]
mov word [edx], ax
add dword [ebp + 0x7c], 2
add ecx, 4
dec edi
jne 0x30077b42
mov eax, dword [ebp + 0x54]
sub eax, dword [ebp + 0x70]
mov dword [ebp + 0x54], eax
test eax, eax
jg 0x30077acb
jmp 0x30077a49
and word [esi + eax*2 + 0x1132], 0
and word [esi + eax*2 + 0x1532], 0
inc ecx
inc ecx
cmp ecx, 0x400
jl 0x30077a6a
jmp 0x30077be2
xor edx, edx
lea eax, [esi + 0x1132]
cmp edx, edi
jge 0x30077bcb
mov cx, word [ebx + edx*2]
mov word [eax + 0x400], cx
mov word [eax], cx
jmp 0x30077bd7
and word [eax + 0x400], 0
and word [eax], 0
inc edx
inc eax
inc eax
cmp edx, 0x200
jl 0x30077bb7
and dword [esi + 0xac], 0
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4