Function at 0x40eda0
Capabilities:
Write file on windows

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x1ac
mov ebx, eax
mov dword [esp + 0x40], edx
lea eax, [esp + 0x13c]
lea edx, [ebx + 0x2b8]
mov ecx, dword [edx]
mov edx, dword [edx - 0x10]
mov ebp, dword [ebx + 0x9c]
mov dword [eax], ecx
mov dword [eax - 0x24], edx
call fcn.00413d40
mov dword [esp + 0x194], eax
lea edx, [ebx + 0x58]
mov eax, dword [edx]
pxor xmm1, xmm1
mov ecx, dword [edx + 0x3c]
mov edx, ecx
neg edx
pcmpeqd xmm0, xmm0
mov dword [esp + 0x198], edx
lea esi, [eax + 0x27a358]
mov edx, dword [esi]
mov dword [esp + 0xc4], edx
mov edx, dword [esi - 4]
movzx eax, byte [ebx + 0x2ac]
cmp eax, 0xf
mov dword [esp + 0xcc], edx
mov edx, 0xf
cmovl edx, eax
lea eax, [ebx + 0x2ac]
mov byte [eax], dl
shl edx, 4
mov dword [esp + 0x154], ebp
lea edx, [edx + 0x403de0]
mov dword [eax + 4], edx
mov edi, ecx
mov edx, 0x1000000
and edi, 0xffffff
mov esi, dword [esp + 0x40]
shr ecx, 0x18
mov dword [esp + 0x1a0], edi
add esi, edi
cmp esi, 0x1000000
lea eax, [ebx + ecx*4 + 0xa4]
mov ebp, dword [eax]
mov dword [esp + 0x150], ebp
cmovae esi, edx
mov ebp, dword [eax - 4]
add ebp, 0x1000000
test edi, edi
je 0x4107a4
mov edx, dword [esp + 0x150]
mov eax, edi
movzx edx, byte [edx + eax - 1]
mov dword [esp + 0x170], edx
cmp eax, esi
jae 0x40fcb1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x19c], esi
mov dword [esp + 0xd0], ebp
mov dword [esp + 0x11c], ecx
mov edx, dword [esp + 0x198]
mov ebp, dword [esp + 0x1a0]
movzx edi, byte [ebx + 0x6c]
movzx esi, byte [ebx + 0x2ac]
shl esi, 4
lea ecx, [ebp + edx]
and edi, ecx
mov dword [esp + 0x1a4], ecx
mov edx, dword [esp + 0x194]
movzx ebp, byte [esi + edi + 0x403de0]
movzx edi, byte [esi + edi + 0x403ee0]
cmp edi, 9
jge 0x40efa3
mov ecx, dword [esp + 0x154]
mov esi, edx
shl ecx, 4
and esi, 0x7fff
add ecx, dword [ebx + 0x58]
shl ebp, 8
add ecx, ebp
movd xmm0, esi
pshuflw xmm1, xmm0, 0
mov dword [esp + 0x140], edi
movdqu xmm4, xmmword [ecx + 0x820]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb ebp, xmm2
add ebp, 0x10
bsf ebp, ebp
movzx edi, word [ecx + ebp*2 + 0x81e]
sub esi, edi
movzx eax, word [ecx + ebp*2 + 0x820]
shr edx, 0xf
sub eax, edi
imul eax, edx
mov edx, ebp
shl edx, 4
add esi, eax
mov edi, dword [esp + 0x140]
movdqu xmm3, xmmword [edx + 0x401070]
psubw xmm3, xmm4
psraw xmm3, 6
paddw xmm4, xmm3
movdqu xmmword [ecx + 0x820], xmm4
cmp esi, 0x800000
jb 0x40fd74
mov dword [esp + 0x194], esi
dec ebp
jmp 0x40f015
mov esi, dword [ebx + 0x58]
mov eax, edx
mov ecx, dword [esp + 0x154]
shl ebp, 5
shr eax, 0xd
lea ecx, [esi + ecx*2]
mov dword [esp + 0x148], ecx
mov esi, edx
movzx ecx, word [ebp + ecx]
and esi, 0x1fff
imul eax, ecx
mov dword [esp + 0x144], eax
cmp esi, ecx
jae 0x410739
mov edx, ecx
neg edx
add edx, 0x2000
shr edx, 5
add ecx, edx
mov edx, dword [esp + 0x148]
add esi, dword [esp + 0x144]
mov word [ebp + edx], cx
cmp esi, 0x800000
jb 0x410702
mov dword [esp + 0x194], esi
xor ebp, ebp
test ebp, ebp
jne 0x40f598
mov edi, dword [ebx]
not edi
add edi, dword [esp + 0x1a0]
js 0x40fdd7
mov edx, dword [esp + 0x150]
movzx ecx, byte [edi + edx]
mov dword [esp + 0x160], ecx
movzx edi, byte [ebx + 0x6f]
mov ecx, dword [esp + 0x1a4]
and ecx, edi
mov ebp, dword [ebx + 0x2b0]
mov edx, dword [esp + 0x160]
mov dword [esp + 0x174], esi
movzx ebp, byte [ecx + ebp]
mov esi, ebp
movzx ecx, byte [ebx + 0x71]
shr edx, cl
mov ecx, edx
shl ecx, 5
shl esi, 4
add esi, ebp
shl esi, 9
mov edi, dword [ebx + 0x58]
lea edx, [ecx + edx*2]
add edx, esi
movzx eax, byte [esp + 0x170]
add edx, edi
mov dword [esp + 0x17c], edx
mov edx, eax
movzx ecx, byte [ebx + 0x70]
shr edx, cl
mov ecx, edx
shl ecx, 5
mov dword [esp + 0x168], eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x164], ebp
mov dword [esp + 0x15c], esi
lea edx, [ecx + edx*2]
movzx ecx, byte [ebx + 0x73]
add edx, esi
shr eax, cl
add edx, edi
mov ebx, eax
shl ebx, 5
shl eax, 0xb
add eax, ebx
mov ebx, 0x8000
mov ecx, dword [esp + 0x154]
shl ebp, 5
mov dword [esp + 0x178], edi
movdqu xmm4, xmmword [edx + 0x8eb20]
movdqu xmm1, xmmword [edx + 0x8eb30]
mov dword [esp + 0x158], ebp
lea esi, [eax + ecx*2]
add esi, ebp
mov ecx, dword [esp + 0x174]
mov dword [esp + 0x180], esi
mov word [esp + 0xf4], bx
movzx edi, word [edi + esi + 0x5d7a9c]
mov esi, ecx
mov dword [esp + 0x184], edi
and esi, 0x7fff
shr ecx, 0xf
movd xmm6, edi
mov edi, dword [esp + 0x17c]
pshuflw xmm7, xmm6, 0
pshufd xmm5, xmm7, 0
pxor xmm6, xmm6
movdqu xmm3, xmmword [edi + 0x4920]
psubw xmm6, xmm5
movdqa xmm2, xmm5
movdqa xmm0, xmm6
movd xmm7, esi
pmulhuw xmm2, xmm3
pmulhuw xmm0, xmm4
pmulhuw xmm6, xmm1
paddw xmm2, xmm0
movdqu xmm0, xmmword [edi + 0x4930]
movdqu xmmword [esp + 0xd4], xmm2
pmulhuw xmm5, xmm0
punpcklwd xmm7, xmm7
paddw xmm5, xmm6
pshufd xmm6, xmm7, 0
movdqu xmmword [esp + 0xe4], xmm5
pcmpgtw xmm2, xmm6
pcmpgtw xmm5, xmm6
packsswb xmm2, xmm5
pmovmskb ebp, xmm2
add ebp, 0x10000
bsf ebx, ebp
movzx ebp, word [esp + ebx*2 + 0xd2]
movzx eax, word [esp + ebx*2 + 0xd4]
sub eax, ebp
imul ecx, eax
sub ecx, ebp
add ecx, esi
mov dword [esp + 0x174], ecx
movzx ebp, word [edi + ebx*2 + 0x4920]
movzx ecx, word [edi + ebx*2 + 0x491e]
sub ebp, ecx
movzx eax, word [edx + ebx*2 + 0x8eb20]
movzx esi, word [edx + ebx*2 + 0x8eb1e]
sub eax, esi
mov ecx, dword [esp + 0x184]
mov esi, ecx
shr esi, 4
sub ecx, esi
cmp bp, ax
mov ebp, dword [esp + 0x180]
mov eax, dword [esp + 0x178]
mov dword [esp + 0x16c], ebx
lea esi, [ecx + 0xfff]
cmovae ecx, esi
mov word [eax + ebp + 0x5d7a9c], cx
lea ecx, [ebx - 1]
mov ebx, ecx
shl ebx, 5
mov esi, dword [esp + 0x174]
movdqu xmm5, xmmword [ebx + 0x4010c0]
movdqu xmm6, xmmword [ebx + 0x4010d0]
movdqa xmm2, xmm5
psubw xmm5, xmm4
psubw xmm2, xmm3
psraw xmm5, 6
psraw xmm2, 6
paddw xmm4, xmm5
paddw xmm3, xmm2
movdqu xmmword [edi + 0x4920], xmm3
movdqa xmm3, xmm6
psubw xmm6, xmm1
psubw xmm3, xmm0
psraw xmm6, 6
psraw xmm3, 6
paddw xmm1, xmm6
paddw xmm0, xmm3
movdqu xmmword [edi + 0x4930], xmm0
movdqu xmmword [edx + 0x8eb20], xmm4
movdqu xmmword [edx + 0x8eb30], xmm1
mov ebx, dword [esp + 0x14c]
cmp esi, 0x800000
jae 0x40f2e2
mov edx, dword [esp + 0x13c]
shl esi, 8
movzx ebp, byte [edx]
or esi, ebp
inc edx
cmp esi, 0x800000
jb 0x40fdc1
mov dword [esp + 0x13c], edx
mov ebp, dword [esp + 0x164]
mov edx, ebp
shl edx, 4
add edx, ebp
mov ebp, dword [esp + 0x160]
mov eax, ebp
shr ebp, 4
and eax, 0xf
add eax, 0x10
cmp ecx, ebp
mov dword [esp + 0x14c], ebx
cmove ecx, eax
mov ebp, ecx
shl ebp, 5
shl edx, 6
mov eax, dword [esp + 0x168]
mov edi, dword [ebx + 0x58]
mov dword [esp + 0x188], edi
lea ecx, [ebp + ecx*2]
mov ebp, eax
add edx, ecx
movzx ecx, byte [ebx + 0x72]
add edx, edi
shr ebp, cl
mov ecx, ebp
shl ecx, 5
movdqu xmm3, xmmword [edx + 0x118d20]
mov dword [esp + 0x194], esi
lea ebp, [ecx + ebp*2]
movzx ecx, byte [ebx + 0x73]
shr eax, cl
mov ebx, eax
shl ebx, 5
shl eax, 0xb
add eax, ebx
mov ebx, 0x8000
mov ecx, dword [esp + 0x154]
add ebp, dword [esp + 0x15c]
add ebp, edi
mov word [esp + 0x116], bx
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x158]
mov dword [esp + 0x18c], eax
movdqu xmm4, xmmword [ebp + 0x12a160]
movdqu xmm1, xmmword [ebp + 0x12a170]
movzx edi, word [edi + eax + 0x659a9c]
mov eax, esi
and eax, 0x7fff
mov dword [esp + 0x190], edi
movd xmm6, edi
pshuflw xmm7, xmm6, 0
pshufd xmm5, xmm7, 0
pxor xmm6, xmm6
psubw xmm6, xmm5
movdqa xmm2, xmm5
movdqa xmm0, xmm6
movd xmm7, eax
pmulhuw xmm2, xmm3
pmulhuw xmm0, xmm4
pmulhuw xmm6, xmm1
paddw xmm2, xmm0
movdqu xmm0, xmmword [edx + 0x118d30]
movdqu xmmword [esp + 0xf6], xmm2
pmulhuw xmm5, xmm0
punpcklwd xmm7, xmm7
paddw xmm5, xmm6
pshufd xmm6, xmm7, 0
movdqu xmmword [esp + 0x106], xmm5
pcmpgtw xmm2, xmm6
pcmpgtw xmm5, xmm6
packsswb xmm2, xmm5
pmovmskb ecx, xmm2
add ecx, 0x10000
bsf ecx, ecx
movzx edi, word [esp + ecx*2 + 0xf4]
movzx ebx, word [esp + ecx*2 + 0xf6]
shr esi, 0xf
sub ebx, edi
imul esi, ebx
sub esi, edi
add esi, eax
mov dword [esp + 0x174], esi
movzx edi, word [edx + ecx*2 + 0x118d20]
movzx esi, word [edx + ecx*2 + 0x118d1e]
sub edi, esi
movzx ebx, word [ebp + ecx*2 + 0x12a160]
movzx esi, word [ebp + ecx*2 + 0x12a15e]
sub ebx, esi
mov esi, dword [esp + 0x190]
mov eax, esi
shr eax, 4
sub esi, eax
cmp di, bx
mov edi, dword [esp + 0x18c]
mov ebx, dword [esp + 0x188]
lea eax, [esi + 0xfff]
cmovae esi, eax
mov eax, ecx
shl eax, 5
mov word [ebx + edi + 0x659a9c], si
mov esi, dword [esp + 0x174]
mov ebx, dword [esp + 0x14c]
movdqu xmm5, xmmword [eax + 0x4012a0]
movdqu xmm6, xmmword [eax + 0x4012b0]
movdqa xmm2, xmm5
psubw xmm5, xmm4
psubw xmm2, xmm3
psraw xmm5, 7
psraw xmm2, 7
paddw xmm4, xmm5
paddw xmm3, xmm2
movdqu xmmword [edx + 0x118d20], xmm3
movdqa xmm3, xmm6
psubw xmm6, xmm1
psubw xmm3, xmm0
psraw xmm6, 7
psraw xmm3, 7
paddw xmm1, xmm6
paddw xmm0, xmm3
movdqu xmmword [edx + 0x118d30], xmm0
movdqu xmmword [ebp + 0x12a160], xmm4
movdqu xmmword [ebp + 0x12a170], xmm1
cmp esi, 0x800000
jae 0x40f549
mov edx, dword [esp + 0x13c]
shl esi, 8
movzx ebp, byte [edx]
or esi, ebp
inc edx
cmp esi, 0x800000
jb 0x40fdab
mov dword [esp + 0x13c], edx
mov ebp, dword [esp + 0x16c]
shl ebp, 4
mov dword [esp + 0x194], esi
mov esi, dword [esp + 0x154]
lea edx, [ebp + ecx - 0x11]
mov ebp, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x150]
movzx edi, byte [esi + 0x403fe0]
mov dword [esp + 0x170], edx
mov byte [ecx + ebp], dl
inc ebp
mov dword [esp + 0x154], edi
mov dword [esp + 0x1a0], ebp
jmp 0x40fc99
cmp ebp, 1
jne 0x40fb33
mov edx, dword [ebx]
mov dword [esp + 0x124], edx
not edx
add edx, dword [esp + 0x1a0]
js 0x410171
mov ecx, dword [esp + 0x150]
movzx edx, byte [edx + ecx]
mov dword [esp + 0x130], edx
mov edi, dword [esp + 0x154]
mov ebp, edi
shl ebp, 5
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0x128], ecx
lea edx, [ebp + edi*2]
movzx ebp, byte [ebx + 0x6d]
and ebp, dword [esp + 0x1a4]
mov edi, dword [ebx + 0x2b0]
mov dword [esp + 0x120], edx
movzx ebp, byte [ebp + edi]
mov edi, ebp
shl edi, 4
add edi, ebp
shl edi, 5
add edi, edx
add edi, ecx
mov dword [esp + 0x12c], edi
cmp dword [esp + 0x124], 0
je 0x41016a
bsr edx, dword [esp + 0x124]
inc edx
movzx ecx, byte [ebx + 0x6e]
mov eax, 0x8000
mov edi, dword [esp + 0x130]
shr edi, cl
mov ecx, edx
mov ebp, edi
shl ecx, 5
shl ebp, 4
add ebp, edi
mov edi, dword [esp + 0x128]
shl ebp, 6
lea edx, [ecx + edx*2]
add ebp, edi
movzx ecx, byte [ebx + 0x73]
add ebp, edx
movzx edx, byte [esp + 0x170]
shr edx, cl
shl edx, 5
mov dword [esp + 0x14c], ebx
mov ebx, dword [esp + 0x154]
movdqu xmm4, xmmword [ebp + 0x1bcd80]
movdqu xmm1, xmmword [ebp + 0x1bcd90]
mov word [esp + 0xc0], ax
lea ebx, [edx + ebx*2]
movzx edx, word [edi + ebx + 0x6dba9c]
mov eax, esi
mov dword [esp + 0x134], ebx
and eax, 0x7fff
mov ebx, dword [esp + 0x12c]
movd xmm6, edx
pshuflw xmm7, xmm6, 0
pshufd xmm5, xmm7, 0
pxor xmm6, xmm6
movdqu xmm3, xmmword [ebx + 0x1b4360]
psubw xmm6, xmm5
movdqa xmm2, xmm5
movdqa xmm0, xmm6
movd xmm7, eax
pmulhuw xmm2, xmm3
pmulhuw xmm0, xmm4
pmulhuw xmm6, xmm1
paddw xmm2, xmm0
movdqu xmm0, xmmword [ebx + 0x1b4370]
movdqu xmmword [esp + 0xa0], xmm2
pmulhuw xmm5, xmm0
punpcklwd xmm7, xmm7
paddw xmm5, xmm6
pshufd xmm6, xmm7, 0
movdqu xmmword [esp + 0xb0], xmm5
pcmpgtw xmm2, xmm6
pcmpgtw xmm5, xmm6
packsswb xmm2, xmm5
pmovmskb edi, xmm2
add edi, 0x10000
mov dword [esp + 0x138], edx
bsf edx, edi
movzx edi, word [esp + edx*2 + 0x9e]
movzx ecx, word [esp + edx*2 + 0xa0]
shr esi, 0xf
sub ecx, edi
imul esi, ecx
sub esi, edi
add esi, eax
mov dword [esp + 0x174], esi
movzx edi, word [ebx + edx*2 + 0x1b4360]
movzx esi, word [ebx + edx*2 + 0x1b435e]
sub edi, esi
movzx eax, word [ebp + edx*2 + 0x1bcd80]
movzx ecx, word [ebp + edx*2 + 0x1bcd7e]
sub eax, ecx
mov esi, dword [esp + 0x138]
mov ecx, esi
shr ecx, 4
sub esi, ecx
cmp di, ax
mov eax, dword [esp + 0x128]
lea ecx, [esi + 0xfff]
cmovae esi, ecx
mov ecx, dword [esp + 0x134]
mov word [eax + ecx + 0x6dba9c], si
lea ecx, [edx - 1]
mov edi, ecx
shl edi, 5
mov esi, dword [esp + 0x174]
movdqu xmm5, xmmword [edi + 0x4010c0]
movdqu xmm6, xmmword [edi + 0x4010d0]
movdqa xmm2, xmm5
psubw xmm5, xmm4
psubw xmm2, xmm3
psraw xmm5, 6
psraw xmm2, 6
paddw xmm4, xmm5
paddw xmm3, xmm2
movdqu xmmword [ebx + 0x1b4360], xmm3
movdqa xmm3, xmm6
psubw xmm6, xmm1
psubw xmm3, xmm0
psraw xmm6, 6
psraw xmm3, 6
paddw xmm1, xmm6
paddw xmm0, xmm3
movdqu xmmword [ebx + 0x1b4370], xmm0
movdqu xmmword [ebp + 0x1bcd80], xmm4
movdqu xmmword [ebp + 0x1bcd90], xmm1
mov ebx, dword [esp + 0x14c]
cmp esi, 0x800000
jae 0x40f85e
mov ebp, dword [esp + 0x13c]
shl esi, 8
movzx edi, byte [ebp]
or esi, edi
inc ebp
cmp esi, 0x800000
jb 0x410153
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x194], esi
cmp ecx, 0xa
ja 0x4100d1
movzx eax, word [ecx*2 + 0x4084a0]
add eax, 0x40f87d
jmp eax
cmp ebp, dword [esp + 0x1a0]
jae 0x40fedf
mov esi, dword [esp + 0x1a0]
not ebp
add ebp, esi
xor ecx, ecx
mov edx, ebp
and ebp, 0xffffff
sar edx, 0x18
add edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x150]
cmovl ecx, dword [esp + 0x118]
add edx, ecx
add esi, eax
add ebp, dword [ebx + edx*4 + 0xa4]
mov edx, ebp
sub edx, esi
cmp edi, 6
jle 0x40fb12
cmp esi, ebp
jbe 0x40fafa
neg edx
cmp edx, edi
jge 0x40fb02
jmp 0x40fb12
cmp ebp, esi
jbe 0x40fb12
cmp edx, edi
jl 0x40fb12
xor eax, eax
movzx edx, byte [eax + ebp]
mov byte [eax + esi], dl
inc eax
cmp eax, edi
jl 0x40fb04
jmp 0x40fb20
xor eax, eax
movzx edx, byte [eax + ebp]
mov byte [eax + esi], dl
inc eax
cmp eax, edi
jl 0x40fb14
mov dword [esp + 0x170], edx
add dword [esp + 0x1a0], edi
jmp 0x40fc99
cmp ebp, 2
jne 0x40fc99
cmp edi, 4
ja 0x40fc99
movzx eax, word [edi*2 + 0x4084b8]
add eax, 0x40fb54
jmp eax
mov edx, dword [esp + 0x1a0]
cmp edx, dword [esp + 0x19c]
jb 0x40eeb7
mov edi, dword [esp + 0x3c]
mov edx, dword [ebx + 0x2d4]
mov ebp, dword [esp + 0x1a0]
sub ebp, edi
add edi, dword [esp + 0x150]
cmp dword [edx], 0
je 0x43622f
push ebp
push edi
mov edi, dword [edx + 4]
push dword [edi + 0x1c]
mov esi, dword [edi + 0x14]
call fcn.00421410
add esp, 0xc
mov dword [esi], 2
mov dword [esi + 4], ebp
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 8]
test eax, eax
jl 0x4107c1
lea eax, [ebx + 0x94]
mov edx, dword [eax]
add dword [ebx + 0x2c0], ebp
add edx, ebp
sub dword [esp + 0x40], ebp
mov dword [eax], edx
cmp dword [esp + 0x1a0], 0x1000000
ja 0x410334
cmp dword [esp + 0x40], 0
jne 0x43625a
lea eax, [ebx + 0x58]
mov ecx, dword [eax]
mov ebp, dword [esp + 0x154]
mov edx, dword [esp + 0xc4]
mov dword [eax + 0x44], ebp
mov dword [ecx + 0x27a358], edx
mov ebx, dword [eax]
mov eax, dword [esp + 0xcc]
mov dword [ebx + 0x27a354], eax
xor eax, eax
add esp, 0x1ac
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, dword [esp + 0x13c]
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x40fd98
mov dword [esp + 0x13c], edx
jmp 0x40ef99
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x40fd98
jmp 0x40fd8c
shl esi, 8
movzx ebp, byte [edx]
or esi, ebp
inc edx
cmp esi, 0x800000
jb 0x40fdab
jmp 0x40f542
shl esi, 8
movzx ebp, byte [edx]
or esi, ebp
inc edx
cmp esi, 0x800000
jb 0x40fdc1
jmp 0x40f2db
mov ecx, edi
xor edx, edx
sar ecx, 0x18
and edi, 0xffffff
add ecx, dword [esp + 0x11c]
cmovl edx, dword [esp + 0x118]
add ecx, edx
mov ebp, dword [ebx + ecx*4 + 0xa4]
movzx edi, byte [ebp + edi]
mov dword [esp + 0x160], edi
jmp 0x40f040
mov ecx, dword [esp + 0x1a0]
not ebp
add ebp, ecx
xor eax, eax
mov edx, ebp
mov esi, ebp
sar edx, 0x18
and esi, 0xffffff
add edx, dword [esp + 0x11c]
cmovl eax, dword [esp + 0x118]
add edx, eax
lea eax, [ecx + edi]
add edi, esi
cmp edi, 0x1000000
ja 0x410656
lea ebp, [esp + 0x1a0]
sub esi, dword [ebp]
mov ecx, dword [esp + 0x150]
mov ebp, dword [ebp]
add esi, dword [ebx + edx*4 + 0xa4]
movzx edx, byte [esi + ebp]
mov byte [ecx + ebp], dl
inc ebp
cmp ebp, eax
jae 0x40ff4e
movzx edx, byte [esi + ebp]
mov byte [ecx + ebp], dl
inc ebp
cmp ebp, eax
jb 0x40ff36
mov dword [esp + 0x170], edx
mov dword [esp + 0x1a0], ebp
jmp 0x40fc99
mov edi, edx
add edi, 0xfffffff3
mov ebp, dword [ebx + edi*4]
je 0x41012d
mov esi, edi
shr esi, 1
test esi, esi
jbe 0x41014e
mov dword [esp + 0x6c], edx
xor ecx, ecx
mov dword [esp + 0x14c], ebx
lea eax, [ebx + edx*4]
lea edx, [ecx*8]
inc ecx
neg edx
add edx, eax
mov ebx, dword [edx - 0x38]
mov dword [edx - 0x34], ebx
mov ebx, dword [edx - 0x3c]
mov dword [edx - 0x38], ebx
cmp ecx, esi
jb 0x4100f3
mov edx, dword [esp + 0x6c]
lea ecx, [ecx + ecx + 1]
mov ebx, dword [esp + 0x14c]
dec ecx
cmp ecx, edi
jae 0x41012d
sub edx, ecx
mov ecx, dword [ebx + edx*4 - 0x38]
mov dword [ebx + edx*4 - 0x34], ecx
mov edx, dword [esp + 0x154]
mov edi, 2
mov dword [ebx], ebp
movzx ecx, byte [edx + 0x404000]
mov dword [esp + 0x154], ecx
jmp 0x40fa9f
xor ecx, ecx
inc ecx
jmp 0x41011e
shl esi, 8
movzx edi, byte [ebp]
or esi, edi
inc ebp
cmp esi, 0x800000
jb 0x410153
jmp 0x40f857
xor edx, edx
jmp 0x40f62e
mov edi, edx
xor ecx, ecx
sar edi, 0x18
and edx, 0xffffff
add edi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x118]
cmovge ebp, ecx
add edi, ebp
mov ecx, dword [ebx + edi*4 + 0xa4]
movzx edx, byte [ecx + edx]
mov dword [esp + 0x130], edx
jmp 0x40f5cb
shr edx, 0x18
mov eax, dword [ebx + edx*4 + 0xa4]
lea ecx, [esp + 0x150]
mov edx, dword [ecx]
add edx, 0x1000000
mov dword [ecx], edx
cmp eax, edx
jne 0x436243
jmp 0x40fd31
mov ecx, dword [esp + 0x150]
or ebp, 0xff000000
mov edi, dword [esp + 0x1a0]
add ecx, edi
mov dword [esp + 0x30], ecx
sub edi, ebp
mov ecx, dword [ebx + edx*4 + 0xa4]
add esi, ecx
mov dword [esp + 0x1a0], edi
add ecx, 0x1000000
mov edi, dword [esp + 0x30]
movdqu xmm0, xmmword [esi]
movdqu xmmword [edi], xmm0
lea ebp, [esi + 0x10]
cmp ebp, ecx
jae 0x4106af
movdqu xmm0, xmmword [esi + 0x10]
add esi, 0x20
movdqu xmmword [edi + 0x10], xmm0
add edi, 0x20
cmp esi, ecx
jb 0x41068c
cmp eax, dword [esp + 0x1a0]
jbe 0x436210
mov ecx, dword [ebx + edx*4 + 0xa8]
lea edx, [esp + 0x1a0]
sub ecx, dword [edx]
mov ebp, dword [esp + 0x150]
mov esi, dword [edx]
movzx edx, byte [ecx + esi]
mov byte [ebp + esi], dl
inc esi
cmp esi, eax
jae 0x4106ef
movzx edx, byte [ecx + esi]
mov byte [ebp + esi], dl
inc esi
cmp esi, eax
jb 0x4106d5
mov dword [esp + 0x170], edx
mov dword [esp + 0x1a0], esi
jmp 0x40fc99
mov edx, dword [esp + 0x13c]
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x410726
mov dword [esp + 0x13c], edx
jmp 0x40f00c
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x410726
jmp 0x41071a
sub edx, dword [esp + 0x144]
mov esi, edx
mov edx, ecx
shr edx, 5
sub esi, ecx
sub ecx, edx
mov edx, dword [esp + 0x148]
mov word [ebp + edx], cx
cmp esi, 0x800000
jb 0x410770
mov dword [esp + 0x194], esi
mov ebp, 1
jmp 0x40f015
mov edx, dword [esp + 0x13c]
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x410791
mov dword [esp + 0x13c], edx
jmp 0x41075f
shl esi, 8
movzx ecx, byte [edx]
or esi, ecx
inc edx
cmp esi, 0x800000
jb 0x410791
jmp 0x410788
movzx edx, byte [ebp - 1]
mov dword [esp + 0x170], edx
cmp esi, dword [esp + 0x1a0]
ja 0x40ee9e
jmp 0x40fcb1
add esp, 0x1ac
pop ebp
pop ebx
pop edi
pop esi
ret
mov ebp, dword [esp + 0x150]
mov esi, dword [esp + 0x1a0]
movzx edx, byte [ebp + esi - 1]
mov dword [esp + 0x170], edx
jmp 0x40fc99
push dword [edx + 0xc]
push ebp
push 1
push edi
call fcn.00425b1b
add esp, 0x10
jmp 0x40fd02
mov ecx, dword [esp + 0x1a0]
and ecx, 0xffffff
call fcn.0041bef0
jmp 0x40fd31
mov ecx, dword [ebx + 0x94]
jmp 0x40ee3a