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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1021e947
mov eax, dword fs:[0]
push eax
sub esp, 0x158
mov eax, dword [0x104fb780]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xe0], esi
mov eax, dword [ebp + 0x20]
lea ecx, [esi + 0x1c]
mov dword [ebp - 0x108], eax
lea edx, [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx]
cmp eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
cmovl edx, ecx
mov dword [ebp - 0xd0], edi
lea ecx, [esi + 0x20]
mov eax, dword [edx]
lea edx, [ebp + 0x1c]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xf0], eax
mov eax, dword [ecx]
cmp eax, dword [ebp + 0x1c]
cmovl edx, ecx
mov eax, dword [edx]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp + 0xc]
cdq
mov ecx, edx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
ja 0x10069f1a
jb 0x1006b055
cmp eax, 0x58
jb 0x1006b055
movups xmm0, xmmword [edi]
lea edx, [ebp - 0x18]
mov dword [ebp - 0xcc], 0xb
movups xmmword [ebp - 0x70], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [ebp - 0x60], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [ebp - 0x50], xmm0
movups xmm0, xmmword [edi + 0x30]
movups xmmword [ebp - 0x40], xmm0
movups xmm0, xmmword [edi + 0x40]
movups xmmword [ebp - 0x30], xmm0
movq xmm0, qword [edi + 0x50]
lea edi, [ebp - 0x70]
mov eax, edi
movq qword [ebp - 0x20], xmm0
sub edx, eax
mov dword [ebp - 0xc0], edx
mov eax, dword [edi]
lea edi, [edi + 8]
mov ecx, dword [edi - 4]
mov dword [edx + edi - 4], ecx
mov dword [edx + edi - 8], eax
movzx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebp - 0x12]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x13]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x14]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x15]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x16]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x17]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebp - 0x18]
shld esi, ecx, 8
cdq
or esi, edx
shl ecx, 8
mov edx, dword [ebp - 0xc0]
or ecx, eax
sub edx, 8
mov dword [edi - 8], ecx
sub dword [ebp - 0xcc], 1
mov dword [edi - 4], esi
mov dword [ebp - 0xc0], edx
jne 0x10069f65
mov esi, dword [ebp - 0x48]
add esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x44]
adc eax, dword [ebp - 0x5c]
add esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0xd0]
adc eax, dword [ebp - 0x4c]
add esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xd4]
mov edx, esi
adc eax, dword [ebp - 0x54]
add edi, 0x58
add edx, 0x58
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], edi
adc eax, 0
cmp ecx, eax
jb 0x1006b04e
mov eax, dword [ebp - 0xd8]
ja 0x1006a063
cmp eax, edx
jb 0x1006b04e
cmp ecx, dword [ebp - 0x5c]
jb 0x1006b04e
ja 0x1006a077
cmp eax, dword [ebp - 0x60]
jb 0x1006b04e
cmp ecx, dword [ebp - 0x54]
jb 0x1006b04e
ja 0x1006a08b
cmp eax, dword [ebp - 0x58]
jb 0x1006b04e
cmp ecx, dword [ebp - 0x4c]
jb 0x1006b04e
ja 0x1006a09f
cmp eax, dword [ebp - 0x50]
jb 0x1006b04e
mov edx, dword [ebp - 0x44]
cmp ecx, edx
jb 0x1006b04e
mov ecx, dword [ebp - 0x48]
ja 0x1006a0b7
cmp eax, ecx
jb 0x1006b04e
cmp dword [ebp - 0x64], 0
jl 0x1006b047
jg 0x1006a0cd
cmp dword [ebp - 0x68], 0
jb 0x1006b047
cmp dword [ebp - 0x5c], 0
jl 0x1006b047
jg 0x1006a0e3
cmp dword [ebp - 0x60], 0
jb 0x1006b047
cmp dword [ebp - 0x54], 0
jl 0x1006b047
jg 0x1006a0f9
cmp dword [ebp - 0x58], 0
jb 0x1006b047
cmp dword [ebp - 0x4c], 0
jl 0x1006b047
jg 0x1006a10f
cmp dword [ebp - 0x50], 0
jb 0x1006b047
test edx, edx
jl 0x1006b047
jg 0x1006a121
test ecx, ecx
jb 0x1006b047
cmp dword [ebp - 0x3c], 0
jl 0x1006b047
jg 0x1006a137
cmp dword [ebp - 0x40], 0
jb 0x1006b047
cmp dword [ebp - 0x34], 0
jl 0x1006b047
jg 0x1006a14d
cmp dword [ebp - 0x38], 0
jb 0x1006b047
mov eax, dword [ebp - 0x2c]
test eax, eax
jl 0x1006b047
jg 0x1006a164
cmp dword [ebp - 0x30], 0
jb 0x1006b047
cmp dword [ebp - 0x24], 0
jl 0x1006b047
jg 0x1006a17a
cmp dword [ebp - 0x28], 0
jb 0x1006b047
cmp dword [ebp - 0x6c], 0
ja 0x1006a19a
jb 0x1006a188
cmp dword [ebp - 0x70], 2
jae 0x1006a19a
mov esi, dword [ebp - 0xe0]
mov ecx, esi
call fcn.10068760
jmp 0x1006a30a
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], 0
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.10062610
mov edi, dword [ebp - 0xc0]
add esp, 8
cmp di, 2
jae 0x1006a1d0
push str.Error_uncompressing_DWA_data__corrupt_header_file_.
jmp 0x1006b05a
movzx eax, di
cdq
add eax, esi
adc edx, dword [ebp - 0xcc]
add eax, 0x58
mov dword [ebp - 0xd0], eax
adc edx, 0
cmp dword [ebp - 0xd4], edx
ja 0x1006a20a
jb 0x1006a200
mov eax, dword [ebp - 0xd8]
cmp eax, dword [ebp - 0xd0]
jae 0x1006a20a
push str.Error_uncompressing_DWA_data__truncated_file_.
jmp 0x1006b05a
mov esi, dword [ebp - 0xe0]
lea ecx, [esi + 0x44]
call fcn.10064590
add edi, 0xfffe
mov dword [ebp - 0xc0], edi
test di, di
je 0x1006a304
nop dword [eax]
movzx eax, di
lea ecx, [ebp - 0x98]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.100627a0
mov edi, dword [esi + 0x48]
mov dword [ebp - 4], 0
cmp edi, dword [esi + 0x4c]
je 0x1006a281
lea eax, [ebp - 0x98]
mov ecx, edi
push eax
call fcn.10022117
mov eax, dword [ebp - 0x80]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x7c]
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x78]
mov dword [edi + 0x20], eax
mov al, byte [ebp - 0x74]
mov byte [edi + 0x24], al
add dword [esi + 0x48], 0x28
jmp 0x1006a291
lea ecx, [ebp - 0x98]
push ecx
push edi
lea ecx, [esi + 0x44]
call fcn.1005ef60
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0xc0]
add eax, 3
mov ecx, dword [ebp - 0x84]
sub edi, eax
movzx eax, di
movzx edi, di
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], edi
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x1006a2fb
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006a2eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006b076
push ecx
push edx
call fcn.1011fe6e
mov eax, dword [ebp - 0xd0]
add esp, 8
test ax, ax
jne 0x1006a230
mov edi, dword [ebp - 0xc4]
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0
push eax
mov ecx, esi
call fcn.100676b0
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 4]
call eax
imul eax, dword [esi + 0xc]
xor ecx, ecx
cmp ecx, dword [esi + 0x8c]
jb 0x1006a38f
ja 0x1006a343
cmp eax, dword [esi + 0x88]
jbe 0x1006a38f
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 4]
call eax
imul eax, dword [esi + 0xc]
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x80]
test eax, eax
je 0x1006a373
push eax
call fcn.1011f898
add esp, 4
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 4]
call eax
imul eax, dword [esi + 0xc]
push eax
call fcn.1011fe7c
add esp, 4
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x50]
xor ecx, ecx
test eax, eax
cmovne ecx, eax
mov eax, dword [esi + 0x60]
mov dword [ebp - 0xe4], ecx
xor ecx, ecx
test eax, eax
cmovne ecx, eax
mov eax, dword [ebp - 0x60]
add eax, edi
mov dword [ebp - 0xec], ecx
add eax, dword [ebp - 0x58]
mov dword [ebp - 0xcc], eax
add eax, dword [ebp - 0x50]
cmp dword [ebp - 0x6c], 0
mov dword [ebp - 0xd8], eax
ja 0x1006b040
cmp dword [ebp - 0x70], 2
ja 0x1006b040
push dword [ebp - 0xe8]
mov ecx, esi
push dword [ebp - 0xdc]
push dword [ebp - 0xf0]
push dword [ebp - 0xc8]
call fcn.10069cb0
cmp dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x60]
ja 0x1006a406
test eax, eax
je 0x1006a45e
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [esi + 0xa4]
jb 0x1006a428
ja 0x1006a41e
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [esi + 0xa0]
jbe 0x1006a42b
push str.Error_uncompressing_DWA_data_corrupt_header_.
jmp 0x1006b05a
mov ecx, dword [ebp - 0x68]
push 0
push ecx
push dword [esi + 0x90]
push eax
push edi
push 0
call fcn.100786b0
add esp, 0x18
test eax, eax
je 0x1006a45e
push str.Error_uncompressing_UNKNOWN_data.
lea ecx, [ebp - 0xac]
call fcn.10160c40
push 0x104f4dcc
jmp 0x1006b06a
cmp dword [ebp - 0x54], 0
ja 0x1006a46e
cmp dword [ebp - 0x58], 0
jbe 0x1006a529
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x1006a41e
mov edi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
shld eax, edi, 1
add edi, edi
mov dword [ebp - 0xc0], eax
cmp eax, dword [esi + 0x5c]
ja 0x1006a41e
jb 0x1006a493
cmp edi, dword [esi + 0x58]
ja 0x1006a41e
mov edx, dword [ebp - 0x20]
mov eax, edx
or eax, dword [ebp - 0x1c]
je 0x1006a510
cmp edx, 1
jne 0x1006a4f6
cmp dword [ebp - 0x1c], 0
jne 0x1006a4f6
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0x30]
add eax, eax
push eax
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0xc4]
push ecx
push dword [ebp - 0x58]
push eax
push 0
call fcn.100786b0
add esp, 0x18
test eax, eax
je 0x1006a4db
push str.Data_decompression__zlib__failed.
jmp 0x1006b05a
cmp edi, dword [ebp - 0xd0]
jne 0x1006a4ec
cmp dword [ebp - 0xc0], 0
je 0x1006a529
push str.AC_data_corrupt.
jmp 0x1006b05a
push str.Unknown_AC_Compression
lea ecx, [ebp - 0xac]
call fcn.10163fd0
push 0x104f5360
jmp 0x1006b06a
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0xc4]
push ecx
push dword [ebp - 0x58]
push eax
call fcn.10075e00
add esp, 0x10
cmp dword [ebp - 0x4c], 0
mov ecx, dword [ebp - 0x50]
ja 0x1006a558
test ecx, ecx
jne 0x1006a558
mov eax, dword [ebp - 0x28]
or eax, dword [ebp - 0x24]
je 0x1006a5a6
push str.DC_data_corrupt.
lea ecx, [ebp - 0xac]
call fcn.10160c40
push 0x104f4dcc
jmp 0x1006b06a
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
shld eax, edi, 1
add edi, edi
mov dword [ebp - 0xd0], eax
cmp eax, dword [esi + 0x6c]
jb 0x1006a584
ja 0x1006a41e
cmp edi, dword [esi + 0x68]
jbe 0x1006a584
push str.Error_uncompressing_DWA_data_corrupt_header_.
jmp 0x1006b05a
push dword [esi + 0x60]
push ecx
push dword [ebp - 0xcc]
mov ecx, dword [esi + 0xb8]
call fcn.1005bfb0
cdq
cmp eax, edi
jne 0x1006a53e
cmp edx, dword [ebp - 0xd0]
jne 0x1006a53e
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
test ecx, ecx
jne 0x1006a5b8
test edi, edi
je 0x1006a667
mov eax, dword [ebp - 0x3c]
cmp eax, dword [esi + 0x7c]
ja 0x1006a41e
mov eax, dword [ebp - 0x40]
jb 0x1006a5d2
cmp eax, dword [esi + 0x78]
ja 0x1006a41e
cmp ecx, dword [esi + 0xb4]
ja 0x1006a41e
jb 0x1006a5ec
cmp edi, dword [esi + 0xb0]
ja 0x1006a41e
lea ecx, [ebp - 0xd0]
push ecx
push eax
push dword [esi + 0x70]
push dword [ebp - 0x48]
push dword [ebp - 0xd8]
push 0
call fcn.100786b0
add esp, 0x18
test eax, eax
je 0x1006a628
push str.Error_uncompressing_RLE_data.
lea ecx, [ebp - 0xac]
call fcn.10160c40
push 0x104f4dcc
jmp 0x1006b06a
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp dword [ebp - 0xd0], eax
jne 0x1006b029
cmp ecx, dword [ebp - 0x3c]
jne 0x1006b029
push dword [esi + 0x98]
push dword [esi + 0x70]
push edi
push eax
call fcn.10076600
cdq
add esp, 0x10
cmp eax, edi
jne 0x1006b029
cmp edx, dword [ebp - 0x34]
jne 0x1006b029
mov ecx, dword [esi + 0x30]
mov eax, 0x51eb851f
sub ecx, dword [esi + 0x2c]
imul ecx
lea ecx, [ebp - 0xf1]
sar edx, 5
mov eax, edx
shr eax, 0x1f
push ecx
add eax, edx
lea ecx, [ebp - 0x118]
push eax
call fcn.10023b86
mov ecx, dword [esi + 0x30]
mov eax, 0x51eb851f
sub ecx, dword [esi + 0x2c]
imul ecx
mov eax, 0
mov dword [ebp - 4], 1
sar edx, 5
mov edi, edx
mov dword [ebp - 0xdc], eax
shr edi, 0x1f
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
add edi, edx
je 0x1006a772
cmp edi, 0x15555555
ja 0x1006b07b
lea ecx, [edi + edi*2]
shl ecx, 2
mov dword [ebp - 0xc0], ecx
cmp ecx, 0x1000
jb 0x1006a721
lea eax, [ecx + 0x23]
cmp eax, ecx
jbe 0x1006b080
push eax
call fcn.1011fa0f
add esp, 4
test eax, eax
je 0x1006b076
mov ecx, dword [ebp - 0xc0]
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov dword [edx - 4], eax
mov eax, edx
jmp 0x1006a73a
test ecx, ecx
je 0x1006a738
push ecx
call fcn.1011fa0f
mov ecx, dword [ebp - 0xc0]
add esp, 4
mov edx, eax
jmp 0x1006a73a
xor edx, edx
add ecx, edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xfc], ecx
nop
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
add eax, 0xc
sub edi, 1
jne 0x1006a750
mov dword [ebp - 0x100], eax
mov edi, dword [esi + 0x2c]
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
mov eax, 0x51eb851f
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xc4], ecx
sub ecx, edi
imul ecx
mov byte [ebp - 4], 2
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1006a7f4
nop
mov edi, dword [ebp - 0xd8]
mov ecx, edi
mov eax, dword [ebp - 0x118]
shr ecx, 5
lea edx, [eax + ecx*4]
mov ecx, edi
and ecx, 0x1f
mov eax, 1
shl eax, cl
inc edi
not eax
mov dword [ebp - 0xd8], edi
and dword [edx], eax
mov eax, dword [esi + 0x30]
mov ecx, eax
mov edi, dword [esi + 0x2c]
sub ecx, edi
mov dword [ebp - 0xc4], eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xd8], eax
jb 0x1006a7a0
mov eax, dword [esi + 0x80]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xf0]
mov esi, eax
mov dword [ebp - 0xc0], eax
cmp eax, dword [ebp - 0xe8]
jg 0x1006a96a
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
mov dword [ebp - 0xd4], ecx
mov ecx, eax
sub ecx, edi
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc4], eax
je 0x1006a957
mov dword [ebp - 0xcc], edi
xor ecx, ecx
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], ecx
add edi, 4
nop word [eax + eax]
mov eax, dword [ebp - 0xcc]
add eax, ecx
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xcc], eax
mov esi, dword [eax + 0x20]
test ecx, ecx
js 0x1006a894
mov eax, ecx
cdq
idiv esi
mov ecx, eax
jmp 0x1006a8aa
mov eax, esi
test esi, esi
js 0x1006a89f
sub eax, ecx
dec eax
jmp 0x1006a8a3
not eax
sub eax, ecx
cdq
idiv esi
mov ecx, eax
neg ecx
imul ecx, esi
mov esi, dword [ebp - 0xc0]
mov eax, esi
sub eax, ecx
jne 0x1006a8fe
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x1006a8cd
mov ecx, dword [ebp - 0xd8]
mov dword [eax], ecx
add dword [edi], 4
jmp 0x1006a8dd
lea ecx, [ebp - 0xd8]
push ecx
push eax
lea ecx, [edi - 4]
call fcn.1005ee40
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x24]
call fcn.10057c10
mov ecx, dword [ebp - 0xcc]
add esp, 4
imul eax, dword [ecx + 0x2c]
add dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
add edi, 0xc
inc dword [ebp - 0xd4]
add dword [ebp - 0xc8], 0x64
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], ecx
sub ecx, eax
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [ebp - 0xc8]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xd4], eax
jb 0x1006a870
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
inc esi
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0xe8]
jle 0x1006a820
mov edi, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0xc0], ecx
mov eax, 0x2aaaaaab
mov ecx, dword [edi + 0x3c]
mov esi, dword [edi + 0x38]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1006ab57
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
nop
mov eax, dword [esi + ecx]
mov edx, dword [esi + ecx + 4]
mov esi, dword [esi + ecx + 8]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0xd4], eax
imul eax, eax, 0x64
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc4], esi
cmp dword [eax + ecx + 0x18], 1
lea edi, [eax + ecx]
mov dword [ebp - 0xf8], edi
jne 0x1006ac19
imul eax, edx, 0x64
add eax, ecx
mov dword [ebp - 0xc8], eax
cmp dword [eax + 0x18], 1
jne 0x1006ac19
imul eax, esi, 0x64
add eax, ecx
mov dword [ebp - 0xd0], eax
cmp dword [eax + 0x18], 1
jne 0x1006ac19
mov ecx, dword [ebp - 0xdc]
lea eax, [edx + edx*2]
lea esi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0xc4]
lea eax, [eax + eax*2]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xc8]
push dword [eax + 0x24]
mov eax, edi
mov edi, dword [ebp - 0x30]
push dword [eax + 0x24]
push dword [eax + 0x30]
push dword [eax + 0x2c]
mov eax, dword [ebp - 0xe4]
push 0x10244e30
push dword [ebp - 0xec]
lea eax, [eax + edi*2]
push eax
push dword [ebp - 0xe4]
push ecx
push esi
push edx
lea ecx, [ebp - 0x164]
call fcn.10062d80
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 3
call fcn.10065ba0
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0xe4]
mov byte [ebp - 4], 2
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0xec]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0xd4]
mov edx, ecx
shr edx, 5
and ecx, 0x1f
lea edx, [eax + edx*4]
mov eax, 1
shl eax, cl
or dword [edx], eax
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov eax, dword [ebp - 0x118]
and ecx, 0x1f
shr edx, 5
lea edx, [eax + edx*4]
mov eax, 1
shl eax, cl
or dword [edx], eax
mov ecx, dword [ebp - 0xc4]
mov edx, ecx
mov eax, dword [ebp - 0x118]
and ecx, 0x1f
shr edx, 5
lea edx, [eax + edx*4]
mov eax, 1
shl eax, cl
lea ecx, [ebp - 0x164]
or dword [edx], eax
mov dword [ebp - method.Imf_3_2::DwaCompressor::LossyDctDecoderCsc.virtual_0], vtable.Imf_3_2::DwaCompressor::LossyDctDecoderCsc.0
call fcn.10063410
mov edi, dword [ebp - 0xe0]
mov eax, 0x2aaaaaab
inc dword [ebp - 0xc0]
add dword [ebp - 0xcc], 0xc
mov ecx, dword [edi + 0x3c]
mov esi, dword [edi + 0x38]
sub ecx, esi
imul ecx
sar edx, 1
mov ecx, dword [ebp - 0xcc]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xc0], eax
jb 0x1006a9a0
mov esi, dword [edi + 0x2c]
mov eax, 0x51eb851f
mov ecx, dword [edi + 0x30]
sub ecx, esi
mov dword [ebp - 0xd4], 0
imul ecx
mov dword [ebp - 0xc4], esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1006afbc
mov dword [ebp - 0xc8], 0
xor ecx, ecx
mov eax, dword [ebp - 0x118]
shr ecx, 5
lea edx, [eax + ecx*4]
mov ecx, dword [ebp - 0xd4]
and ecx, 0x1f
mov eax, 1
shl eax, cl
test dword [edx], eax
jne 0x1006af74
mov eax, dword [ebp - 0xc8]
push dword [eax + esi + 0x24]
call fcn.10057c10
mov ecx, dword [ebp - 0xc8]
add esp, 4
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + esi + 0x18]
sub eax, 0
je 0x1006ae66
sub eax, 1
je 0x1006ad56
sub eax, 1
jne 0x1006b00b
mov eax, dword [ebp - 0xf0]
mov edi, eax
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xe8]
jg 0x1006ad2b
mov dword [ebp - 0xc0], 0
jmp 0x1006ac39
push str.Bad_DWA_compression_type_detected
lea ecx, [ebp - 0xac]
call fcn.10160c40
push 0x104f4dcc
jmp 0x1006b06a
mov ecx, dword [ebp - 0xc8]
mov esi, dword [ecx + esi + 0x20]
test edi, edi
js 0x1006ac4a
mov eax, edi
cdq
idiv esi
mov ecx, eax
jmp 0x1006ac60
mov eax, esi
test esi, esi
js 0x1006ac55
sub eax, edi
dec eax
jmp 0x1006ac59
not eax
sub eax, edi
cdq
idiv esi
mov ecx, eax
neg ecx
imul ecx, esi
mov eax, edi
mov esi, dword [ebp - 0xc4]
sub eax, ecx
jne 0x1006ad18
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax]
mov edx, dword [edx + eax]
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + esi + 0x2c]
cmp ecx, 2
jne 0x1006acc5
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax + esi + 0x50]
push dword [eax + esi + 0x4c]
push edx
call fcn.10069300
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
mov eax, dword [ecx + esi + 0x2c]
add dword [ecx + esi + 0x4c], eax
add dword [ecx + esi + 0x50], eax
jmp 0x1006ad11
xor edi, edi
test eax, eax
jle 0x1006ad0b
mov eax, dword [ebp - 0xc8]
test ecx, ecx
jle 0x1006ad04
add esi, 0x4c
add eax, esi
mov esi, ecx
nop dword [eax]
mov ecx, dword [eax]
lea eax, [eax + 4]
mov cl, byte [ecx]
mov byte [edx], cl
inc edx
inc dword [eax - 4]
sub esi, 1
jne 0x1006ace0
mov ecx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc8]
inc edi
cmp edi, dword [eax + esi + 0x2c]
jl 0x1006acd1
mov edi, dword [ebp - 0xcc]
add dword [ebp - 0xc0], 4
inc edi
mov dword [ebp - 0xcc], edi
cmp edi, dword [ebp - 0xe8]
jle 0x1006ac33
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xd4]
mov ecx, esi
mov eax, dword [ebp - 0x118]
shr ecx, 5
lea edx, [eax + ecx*4]
mov ecx, esi
mov eax, dword [edx]
and ecx, 0x1f
bts eax, ecx
mov dword [edx], eax
jmp 0x1006af7a
push dword [ecx + esi + 0x30]
mov eax, dword [ecx + esi + 0x24]
xor edx, edx
push dword [ecx + esi + 0x2c]
cmp byte [ecx + esi + 0x28], dl
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xf8], eax
mov eax, 0x10244e30
cmovne eax, edx
push eax
mov eax, dword [ebp - 0x30]
push dword [ebp - 0xec]
lea eax, [ecx + eax*2]
push eax
push ecx
lea ecx, [ebp - 0xbc]
call fcn.10062ce0
mov esi, dword [ebp - 0x90]
push dword [ebp - 0xdc]
mov byte [ebp - 4], 4
mov dword [ebp - 0xbc], vtable.Imf_3_2::DwaCompressor::LossyDctDecoder.0
push esi
cmp esi, dword [ebp - 0x8c]
je 0x1006add6
lea eax, [ebp - 0x94]
push eax
call fcn.100600b0
add esp, 0xc
add esi, 0xc
mov dword [ebp - 0x90], esi
jmp 0x1006ade1
lea ecx, [ebp - 0x94]
call fcn.1005f420
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0x80]
je 0x1006adfc
mov ecx, dword [ebp - 0x14]
mov dword [eax], ecx
add eax, 4
mov dword [ebp - 0x84], eax
jmp 0x1006ae0f
lea ecx, [ebp - 0xf8]
push ecx
push eax
lea ecx, [ebp - 0x88]
call fcn.1005f5f0
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 5
call fcn.10065ba0
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xe4]
mov byte [ebp - 4], 2
mov dword [ebp - 0xbc], vtable.Imf_3_2::DwaCompressor::LossyDctDecoder.0
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0xec]
lea ecx, [ecx + eax*2]
mov dword [ebp - 0xec], ecx
lea ecx, [ebp - 0xbc]
call fcn.10063410
jmp 0x1006ad31
push dword [ecx + esi + 0x24]
call fcn.10057c10
mov edx, dword [ebp - 0xc8]
add esp, 4
imul eax, dword [edx + esi + 0x2c]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xf0]
mov esi, eax
cmp eax, dword [ebp - 0xe8]
jg 0x1006ad31
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], 0
mov edi, dword [edx + ecx + 0x20]
test esi, esi
js 0x1006aeb8
mov eax, esi
cdq
idiv edi
mov ecx, eax
jmp 0x1006aece
mov eax, edi
test edi, edi
js 0x1006aec3
sub eax, esi
dec eax
jmp 0x1006aec7
not eax
sub eax, esi
cdq
idiv edi
mov ecx, eax
neg ecx
imul ecx, edi
mov eax, esi
mov edi, dword [ebp - 0xe0]
sub eax, ecx
jne 0x1006af56
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ecx + eax + 0x38]
mov ecx, dword [edi + 0xa0]
add eax, edx
add ecx, dword [edi + 0x90]
cmp eax, ecx
ja 0x1006b022
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc8]
push edx
push dword [ecx + eax + 0x38]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [eax]
push dword [ecx + eax]
call fcn.101219d0
mov ecx, dword [ebp - 0xc4]
add esp, 0xc
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
add dword [edx + ecx + 0x38], eax
add dword [ebp - 0xc0], 4
jmp 0x1006af62
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xc8]
inc esi
cmp esi, dword [ebp - 0xe8]
jle 0x1006aea7
jmp 0x1006ad31
mov esi, dword [ebp - 0xd4]
mov ecx, dword [edi + 0x30]
inc esi
add dword [ebp - 0xc8], 0x64
mov eax, 0x51eb851f
add dword [ebp - 0xdc], 0xc
mov dword [ebp - 0xd4], esi
mov esi, dword [edi + 0x2c]
sub ecx, esi
imul ecx
mov ecx, dword [ebp - 0xd4]
sar edx, 5
mov eax, edx
mov dword [ebp - 0xc4], esi
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x1006ab92
mov eax, dword [ebp - 0x108]
mov ecx, dword [edi + 0x80]
mov esi, dword [ebp - 0xd8]
mov dword [eax], ecx
lea ecx, [ebp - 0x104]
sub esi, dword [edi + 0x80]
call fcn.10063810
lea ecx, [ebp - 0x118]
call fcn.10023b81
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1011f88a
mov esp, ebp
pop ebp
ret 0x1c
push str.Unhandled_compression_scheme_case
lea ecx, [ebp - 0xac]
call fcn.10163fd0
push 0x104f5360
jmp 0x1006b06a
push str.DWA_data_corrupt
jmp 0x1006b05a
push str.RLE_data_corrupted
lea ecx, [ebp - 0xac]
call fcn.10160c40
push 0x104f4dcc
jmp 0x1006b06a
push str.Invalid_version_of_compressed_data_block
jmp 0x1006b05a
push str.Error_uncompressing_DWA_data__corrupt_header_.
jmp 0x1006b05a
push str.Error_uncompressing_DWA_data_truncated_file_.
jmp 0x1006b05a
push str.Error_uncompressing_DWA_data_truncated_header_.
lea ecx, [ebp - 0xac]
call fcn.10163d50
push 0x104f3c64
lea eax, [ebp - 0xac]
push eax
call fcn.1012195f
call fcn.10131bd6
call fcn.10023ad0
call fcn.1001bf8c
int3