Function at 0x8365e0
Capabilities:
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
push ebx
push esi
push edi
mov dword [ebp - 0x8c], 0
mov ecx, 0x7f
xor eax, eax
lea edi, [ebp - 0x603]
mov byte [ebp - 0x604], 0
rep stosd dword es:[edi], eax
fld qword [0x88b578]
fld qword [0x88b578]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x7f
xor eax, eax
lea edi, [ebp - 0x803]
mov byte [ebp - 0x804], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 8]
test eax, eax
je 0x836f65
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8baa78]
fsub st(1)
fxch st(1)
fmul qword [0x89a318]
fadd qword [0x8baa70]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8baa68]
fnstsw ax
test ah, 0x41
jne 0x836678
fld st(0)
fmul qword [0x8baa60]
fsubp st(2)
fadd qword [0x892488]
fcom qword [0x8baa58]
fnstsw ax
test ah, 1
jne 0x83663f
fxch st(1)
fst qword [ebp - 0x70]
fxch st(1)
fstp st(0)
fcomp qword [0x88b578]
fnstsw ax
test ah, 1
je 0x836702
xor al, 0x46
xor eax, 0x7a434428
pop ebx
jbe 0x836722
jbe 0x836719
xor byte [ebp + edx*2 + 0x3c], al
inc edi
sub eax, 0x40564552
push ebx
dec ecx
push esi
aas
push eax
dec eax
pop edx
inc esp
pop eax
inc esp
push ebp
cmp al, 0x4d
inc eax
push ebp
aas
push edx
inc edi
push ebp
dec edi
dec ecx
pop edx
inc esi
push ebx
inc ebx
dec edi
aas
push edi
cmp eax, 0x3f4d3a56
push eax
cmp bl, byte [ebx + 0x45]
dec ebp
push edi
inc ecx
pop ebx
dec ecx
push ecx
cmp al, 0x55
aas
push ebx
dec eax
pop eax
inc ebx
push ebp
dec eax
dec edi
inc esi
push ebx
inc esp
push esi
dec eax
push eax
cmp al, 0x8d
mov ebp, 0xfffffbfc
jmp 0x837a8f
mov dword [ebp - 0x88], 0x8366b5
mov dword [ebp - 0x94], 0x8366a1
xor eax, eax
mov byte [ebp + eax - 0x3bc], al
test byte [0xfffffc44], al
inc eax
cmp eax, 0x100
jb 0x836718
add dword [eax], eax
add byte [edx - 0xf], dh
fld qword [ebp - 0x70]
mov byte [ebp - 0x78], 0
mov eax, 0xff
mov esi, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 8], eax
jmp 0x836740
mov eax, dword [ebp - 8]
mov ebx, 1
mov dword [ebp - 0x10], 0
cmp eax, ebx
jbe 0x836758
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x836750
cmp edi, 3
ja case.default.0x83675d
jmp dword [edi*4 + 0x838748]
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x3bc]
jmp 0x8367dc
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x3bc]
shr eax, 8
jmp 0x8367dc
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x3bc]
shr eax, 0x10
jmp 0x8367dc
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x3bc]
shr eax, 0x18
jmp 0x8367dc
mov eax, dword [ebp - 0x94]
and esi, 0xff
mov cl, byte [eax + edi - 4]
mov al, byte [ebp + esi - 0x3bc]
add cl, al
inc edi
cmp edi, 0x18
mov byte [ebp - 0x78], cl
jb 0x8367ef
xor edi, edi
add cl, 0x18
mov byte [ebp - 0x78], cl
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x10]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x10], eax
jbe 0x83680f
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp edx, eax
ja 0x836758
mov ecx, eax
cmp ecx, edx
je 0x836858
mov al, byte [ebp + edx - 0x3bc]
mov bl, byte [ebp + ecx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
xor bl, al
mov byte [ebp + ecx - 0x3bc], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ebp + ecx - 0x3bc]
mov dl, bl
xor al, dl
mov byte [ebp + ecx - 0x3bc], al
dec ecx
mov dword [ebp - 8], ecx
jne 0x83673d
mov dl, byte [ebp - 0x3b5]
mov edi, dword [ebp - 0x88]
and esi, 0xff
mov byte [ebp - 0x5c], dl
xor edx, edx
mov bl, byte [ebp - 0x3b9]
mov al, byte [ebp + esi - 0x3bc]
mov dl, byte [edi + 1]
mov byte [ebp - 0x60], al
xor eax, eax
mov al, byte [edi]
sub dl, 0x3a
add al, 3
mov cl, byte [ebp - 0x3b7]
shl al, 4
or al, dl
mov edx, dword [ebp - 0x60]
and edx, 0xff
mov byte [ebp - 0x64], al
fstp st(0)
mov al, byte [ebp + edx - 0x3bc]
lea esi, [ebp + edx - 0x3bc]
mov edx, dword [ebp - 0x3bb]
mov byte [ebp - 0x2c], al
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x3bc]
add al, bl
inc dl
mov byte [ebp - 0x58], al
mov byte [ebp - 0x28], dl
mov edx, dword [ebp - 0x58]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
mov byte [esi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x3bc]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x2c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov dword [ebp - 0xc], edx
mov bl, byte [ebp + edx - 0x3bc]
add cl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x68]
and edx, 0xff
mov dl, byte [ebp + edx - 0x3bc]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
mov esi, dword [ebp - 0xc]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x3bc]
mov edx, dword [ebp - 8]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x3bc]
add edx, esi
and edx, 0xff
xor bl, byte [ebp + edx - 0x3bc]
mov dl, byte [ebp - 0x64]
mov byte [ebp - 0x60], dl
xor bl, dl
mov byte [ebp - 0x5c], bl
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add dl, 3
sub bl, 0x3a
shl dl, 4
or dl, bl
mov esi, 1
mov byte [ebp - 0x64], dl
mov edx, dword [ebp - 0x60]
and edx, 0xff
mov dword [ebp - 0x24], 0xe
lea edi, [ebp + edx - 0x3bc]
mov dl, byte [ebp + edx - 0x3bc]
mov byte [ebp - 0x2c], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x28]
add al, bl
inc dl
mov byte [ebp - 0x58], al
mov byte [ebp - 0x28], dl
mov edx, dword [ebp - 0x58]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x3bc]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x2c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov dword [ebp - 0xc], edx
mov bl, byte [ebp + edx - 0x3bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x68]
and edx, 0xff
mov dl, byte [ebp + edx - 0x3bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0xc]
add ebx, edx
mov dl, byte [ebp + edi - 0x3bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x3bc]
mov bl, byte [ebp - 0x64]
mov byte [ebp - 0x60], bl
xor dl, bl
mov byte [ebp - 0x5c], dl
mov byte [ebp - 0x404], dl
mov edx, dword [ebp - 0x88]
lea edi, [edx + 2]
jmp 0x836abf
mov edi, dword [ebp - 0x6c]
mov bl, byte [edi + 2]
mov dl, byte [edi + 3]
add edi, 2
add bl, 3
sub dl, 0x3a
mov dword [ebp - 0x6c], edi
shl bl, 4
or dl, bl
inc esi
mov byte [ebp - 0x64], dl
mov edx, dword [ebp - 0x60]
and edx, 0xff
lea edi, [ebp + edx - 0x3bc]
mov dl, byte [ebp + edx - 0x3bc]
mov byte [ebp - 0x2c], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x28]
add al, bl
inc dl
mov byte [ebp - 0x58], al
mov byte [ebp - 0x28], dl
mov edx, dword [ebp - 0x58]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x3bc]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x2c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov dword [ebp - 0xc], edx
mov bl, byte [ebp + edx - 0x3bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x68]
and edx, 0xff
mov dl, byte [ebp + edx - 0x3bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0xc]
add ebx, edx
mov dl, byte [ebp + edi - 0x3bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x3bc]
mov bl, byte [ebp - 0x64]
mov byte [ebp - 0x60], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x5c], dl
jbe 0x836bd3
mov byte [ebp + esi - 0x405], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x836abc
mov edx, dword [ebp - 0x88]
inc esi
mov bl, byte [edx + esi*2 + 1]
lea edi, [edx + esi*2]
xor edx, edx
sub bl, 0x3a
mov dl, byte [edi]
add dl, 3
shl dl, 4
or dl, bl
mov byte [ebp - 0x64], dl
mov edx, dword [ebp - 0x60]
and edx, 0xff
lea edi, [ebp + edx - 0x3bc]
mov dl, byte [ebp + edx - 0x3bc]
mov byte [ebp - 0x2c], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
mov dl, byte [ebp - 0x28]
add al, bl
inc dl
mov byte [ebp - 0x58], al
mov byte [ebp - 0x28], dl
mov edx, dword [ebp - 0x58]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x3bc]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x2c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov dword [ebp - 0xc], edx
mov bl, byte [ebp + edx - 0x3bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x68]
and edx, 0xff
mov dl, byte [ebp + edx - 0x3bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0xc]
add ebx, edx
mov dl, byte [ebp + edi - 0x3bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x3bc]
mov bl, byte [ebp - 0x64]
mov byte [ebp - 0x60], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x5c], dl
jbe 0x836d04
mov byte [ebp + esi - 0x405], dl
lea ebx, [esi + 1]
cmp ebx, 0x21
jge 0x836e4a
mov edx, dword [ebp - 0x88]
lea edi, [edx + esi*2]
mov edx, 0x21
sub edx, ebx
mov dword [ebp - 0x24], edx
jmp 0x836d28
mov edi, dword [ebp - 0x6c]
mov bl, byte [edi + 3]
add edi, 2
xor edx, edx
sub bl, 0x3a
mov dl, byte [edi]
mov dword [ebp - 0x6c], edi
add dl, 3
inc esi
shl dl, 4
or bl, dl
mov edx, dword [ebp - 0x60]
and edx, 0xff
mov byte [ebp - 0x64], bl
lea edi, [ebp + edx - 0x3bc]
mov dl, byte [ebp + edx - 0x3bc]
mov byte [ebp - 0x2c], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x28]
add al, bl
inc dl
mov byte [ebp - 0x58], al
mov byte [ebp - 0x28], dl
mov edx, dword [ebp - 0x58]
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
lea edx, [ebp + edx - 0x3bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x3bc]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x2c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov dword [ebp - 0xc], edx
mov bl, byte [ebp + edx - 0x3bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x68], cl
mov edx, dword [ebp - 0x68]
and edx, 0xff
mov dl, byte [ebp + edx - 0x3bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x3bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0xc]
add ebx, edx
mov dl, byte [ebp + edi - 0x3bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x3bc]
mov bl, byte [ebp - 0x64]
mov byte [ebp - 0x60], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x5c], dl
jbe 0x836e3d
mov byte [ebp + esi - 0x405], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x836d25
mov edi, dword [ebp - 0x88]
inc esi
xor edx, edx
mov dl, byte [edi + esi*2]
mov edi, dword [ebp - 0x64]
and edi, 0xff
mov bl, byte [ebp + edi - 0x3bc]
lea edi, [ebp + edi - 0x3bc]
mov byte [ebp - 0x2c], bl
mov ebx, dword [ebp - 0x28]
and ebx, 0xff
add al, byte [ebp + ebx - 0x3bc]
mov byte [ebp - 0x58], al
mov al, byte [ebp - 0x28]
inc al
mov byte [ebp - 0x28], al
mov eax, dword [ebp - 0x58]
and eax, 0xff
mov bl, byte [ebp + eax - 0x3bc]
lea eax, [ebp + eax - 0x3bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x5c]
and ebx, 0xff
mov dword [ebp - 8], eax
lea ebx, [ebp + ebx - 0x3bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [eax], bl
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 4]
and eax, 0xff
test esi, esi
lea eax, [ebp + eax - 0x3bc]
mov dword [ebp - 0x10], eax
mov al, byte [eax]
mov byte [ebx], al
mov ebx, dword [ebp - 0x10]
mov al, byte [ebp - 0x2c]
mov byte [ebx], al
jbe 0x836f53
mov ebx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x2c]
add dl, 3
and eax, 0xff
mov bl, byte [ebx + esi*2 + 1]
shl dl, 4
sub bl, 0x3a
or dl, bl
mov bl, byte [ebp + eax - 0x3bc]
add bl, cl
and ebx, 0xff
mov cl, byte [ebp + ebx - 0x3bc]
mov bl, byte [edi]
mov edi, dword [ebp - 4]
add ecx, ebx
mov bl, byte [edi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x3bc]
mov cl, byte [ebp + ebx - 0x3bc]
xor dl, cl
mov ecx, dword [ebp - 8]
mov cl, byte [ecx]
add ecx, eax
and ecx, 0xff
xor dl, byte [ebp + ecx - 0x3bc]
mov byte [ebp + esi - 0x405], dl
mov byte [ebp - 0x3e4], 0
lea edi, [ebp - 0x404]
jmp 0x837a8f
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8baa50]
fsub st(1)
fxch st(1)
fmul qword [0x89aeb0]
fadd qword [0x8996a0]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x89dc30]
mov dword [eax], eax
fnstsw ax
test ah, 0x41
jne 0x836f9e
fld st(0)
fmul qword [0x8baa48]
fsubp st(2)
fadd qword [0x892488]
fcom qword [0x8baa40]
fnstsw ax
test ah, 1
jne 0x836f65
fxch st(1)
fst qword [ebp - 0x70]
fxch st(1)
fstp st(0)
fcomp qword [0x88b578]
fnstsw ax
test ah, 1
je 0x837023
xchg dword [ebp - 0x5a78607f], ebp
jg 0x836f73
sub dword [ebx - 0x5f815c76], 0xa586a781
lea ebp, [edx - 0x5a7f5380]
jg 0x836f8b
xchg byte [eax - 0x5b7e5682], ah
and byte [edx - 0x5b76597f], 0x7f
mov dword [0xa786a780], eax
and byte [ecx - 0x53775c7d], 0x84
cmpsd dword [esi], dword es:[edi]
mov ebx, dword [edi - 0x587d567c]
sub dword [ebp - 0x5b76557c], 0xffffff8b
stosb byte es:[edi], al
daa
inc edi
push esp
push 0x3b
push ebp
xor ch, byte [ecx + 0x65]
cmp eax, 0x523a4126
push ebp
das
xor al, 0x3d
inc esi
push esp
jmp 0x837a89
mov dword [ebp - 0x84], 0x836fc7
mov dword [ebp - 0x98], 0x837009
xor eax, eax
mov byte [ebp + eax - 0x2bc], al
inc eax
cmp eax, 0x100
jb 0x837039
fld qword [ebp - 0x70]
mov byte [ebp - 0x74], 0
xor edi, edi
mov esi, dword [ebp - 0x74]
mov dword [ebp - 8], 0xff
mov eax, dword [ebp - 8]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x24], 0
jbe 0x837076
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x83706e
cmp edi, 3
ja case.default.0x83707b
jmp dword [edi*4 + 0x838758]
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x2bc]
jmp 0x8370fa
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x2bc]
shr eax, 8
jmp 0x8370fa
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x2bc]
shr eax, 0x10
jmp 0x8370fa
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x2bc]
shr eax, 0x18
jmp 0x8370fa
mov ecx, dword [ebp - 0x98]
and esi, 0xff
mov cl, byte [ecx + edi - 4]
mov al, byte [ebp + esi - 0x2bc]
add cl, al
inc edi
cmp edi, 0x19
mov byte [ebp - 0x74], cl
jb 0x83710d
xor edi, edi
add cl, 0x19
mov byte [ebp - 0x74], cl
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x24]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x24], eax
jbe 0x83712d
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, edx
jb 0x837076
je 0x837165
mov bl, byte [ebp + eax - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
lea ecx, [ebp + eax - 0x2bc]
mov al, byte [edx]
xor bl, al
mov byte [ecx], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ecx]
mov dl, bl
xor al, dl
mov byte [ecx], al
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 8], eax
jne 0x83705b
mov dl, byte [ebp - 0x2b5]
mov edi, dword [ebp - 0x84]
and esi, 0xff
mov byte [ebp - 0x34], dl
xor edx, edx
mov bl, byte [ebp - 0x2b9]
mov al, byte [ebp + esi - 0x2bc]
mov dl, byte [edi + 1]
mov byte [ebp - 0x50], al
xor eax, eax
mov al, byte [edi]
sub edx, 0x9e
sub eax, 0x7e
mov cl, byte [ebp - 0x2b7]
shl eax, 4
or al, dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
mov byte [ebp - 0x40], al
fstp st(0)
mov al, byte [ebp + edx - 0x2bc]
lea esi, [ebp + edx - 0x2bc]
mov edx, dword [ebp - 0x2bb]
mov byte [ebp - 0x1c], al
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x2bc]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [esi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
mov esi, dword [ebp - 0x10]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x2bc]
add edx, esi
and edx, 0xff
xor bl, byte [ebp + edx - 0x2bc]
mov dl, byte [ebp - 0x40]
mov byte [ebp - 0x50], dl
xor bl, dl
mov byte [ebp - 0x34], bl
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add dl, 2
add bl, 0x62
shl dl, 4
or dl, bl
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
lea esi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 4]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [esi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + esi - 0x2bc]
and ebx, 0xff
mov esi, 2
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
mov byte [ebp - 0x50], bl
xor dl, bl
lea ebx, [edi + 4]
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x3e0], dl
mov bl, byte [ebx]
mov dl, byte [edi + 5]
add bl, 2
add dl, 0x62
shl bl, 4
or dl, bl
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
mov dword [ebp - 0x24], 0xd
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 4]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x2bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
mov byte [ebp - 0x50], bl
xor dl, bl
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x3df], dl
mov edx, dword [ebp - 0x84]
lea edi, [edx + 4]
jmp 0x8374dd
mov edi, dword [ebp - 0x6c]
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add edi, 2
add dl, 2
shl dl, 4
add bl, 0x62
mov dword [ebp - 0x6c], edi
or dl, bl
inc esi
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 4]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x2bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
mov byte [ebp - 0x50], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x34], dl
jbe 0x8375f1
mov byte [ebp + esi - 0x3e1], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x8374da
mov edx, dword [ebp - 0x84]
inc esi
mov bl, byte [edx + esi*2]
lea edi, [edx + esi*2]
add bl, 2
mov dl, byte [edi + 1]
add dl, 0x62
shl bl, 4
or dl, bl
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 0x14]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x2bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
mov byte [ebp - 0x50], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x34], dl
jbe 0x837720
mov byte [ebp + esi - 0x3e1], dl
lea ebx, [esi + 1]
cmp ebx, 0x20
jge 0x837865
mov edx, dword [ebp - 0x84]
lea edi, [edx + esi*2]
mov edx, 0x20
sub edx, ebx
mov dword [ebp - 0x24], edx
jmp 0x837744
mov edi, dword [ebp - 0x6c]
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add edi, 2
add dl, 2
shl dl, 4
add bl, 0x62
mov dword [ebp - 0x6c], edi
or dl, bl
inc esi
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 4]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x2bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
mov byte [ebp - 0x50], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x34], dl
jbe 0x837858
mov byte [ebp + esi - 0x3e1], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x837741
mov edi, dword [ebp - 0x84]
inc esi
mov bl, byte [edi + esi*2]
mov dl, byte [edi + esi*2 + 1]
add bl, 2
add dl, 0x62
shl bl, 4
or dl, bl
mov byte [ebp - 0x40], dl
mov edx, dword [ebp - 0x50]
and edx, 0xff
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 0x14]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x3c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x34]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x2bc]
mov dword [ebp - 4], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x2bc]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x54], cl
mov edx, dword [ebp - 0x54]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x2bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x2bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x2bc]
mov bl, byte [ebp - 0x40]
xor dl, bl
test esi, esi
mov byte [ebp - 0x34], dl
jbe 0x837982
mov byte [ebp + esi - 0x3e1], dl
mov edx, dword [ebp - 0x40]
inc esi
and edx, 0xff
lea edi, [ebp + edx - 0x2bc]
mov dl, byte [ebp + edx - 0x2bc]
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 4]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0x3c], al
inc bl
mov eax, dword [ebp - 0x3c]
mov byte [ebp - 0x14], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x2bc]
lea eax, [ebp + eax - 0x2bc]
mov byte [edi], dl
mov edx, dword [ebp - 0x34]
and edx, 0xff
mov bl, byte [ebp + edx - 0x2bc]
lea edx, [ebp + edx - 0x2bc]
mov byte [eax], bl
mov ebx, dword [ebp - 0x14]
and ebx, 0xff
mov dword [ebp - 0xc], edx
test esi, esi
lea ebx, [ebp + ebx - 0x2bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 4]
mov dl, byte [ebp - 0x1c]
mov byte [ebx], dl
jbe 0x837a82
mov edx, dword [ebp - 0x1c]
mov al, byte [eax]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x84]
mov bl, byte [edx + esi*2 + 1]
mov dl, byte [edx + esi*2]
add dl, 2
add bl, 0x62
shl dl, 4
or bl, dl
mov edx, dword [ebp - 0x10]
mov dl, byte [ebp + edx - 0x2bc]
add dl, cl
and edx, 0xff
mov cl, byte [ebp + edx - 0x2bc]
mov dl, byte [edi]
add ecx, edx
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov dl, byte [edx]
add eax, edi
add ecx, edx
xor edx, edx
and ecx, 0xff
and eax, 0xff
mov dl, byte [ebp + ecx - 0x2bc]
mov cl, byte [ebp + edx - 0x2bc]
xor bl, cl
mov cl, byte [ebp + eax - 0x2bc]
xor bl, cl
mov byte [ebp + esi - 0x3e1], bl
mov byte [ebp - 0x3c0], 0
lea edi, [ebp - 0x3e0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x604]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebp - 0x804]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x604]
push ecx
push 0x200
push 1
push edx
call fcn.008304b0
fld qword [0x88b578]
fld qword [0x88b578]
add esp, 0x10
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8ba9b8]
fsub st(1)
fxch st(1)
fmul qword [0x89a7b8]
fadd qword [0x8ba9b0]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8ba9a8]
fnstsw ax
test ah, 0x41
jne 0x837b14
fld st(0)
fmul qword [0x8ba9a0]
fsubp st(2)
fadd qword [0x88b548]
fcom qword [0x8ba998]
fnstsw ax
test ah, 1
jne 0x837adb
fxch st(1)
fst qword [ebp - 0x70]
fxch st(1)
fstp st(0)
fcomp qword [0x88b578]
fnstsw ax
test ah, 1
je 0x837b8e
lea edx, [esi]
test byte [edx], bl
xchg dword [eax], esp
xchg dword [esi], ebx
mov edx, dword [0x177f1a8b]
mov word [edx], ds
and dword [edx], 0xffffff84
and byte [edi + edx + 0x1d851488], cl
xchg byte [eax], ah
adc dword [esi], 0xffffff8b
adc eax, 0x1b8c1f87
mov byte [esi], bl
test dword [edi + eax*4], edx
and byte [ecx - 0x75eb75e5], al
push ds
mov esp, dword [ebx]
xchg dword [edi], ebx
jg 0x837b8f
jno 0x837beb
and eax, 0x443f2663
and dword [eax + 0x7c], esi
outsb dx, byte [esi]
push 0x52434c36
pushal
imul esp, dword [esi + 0x7b], 0x4a
arpl cx, bp
or al, byte [eax]
add bh, al
mov dword [ebp - 0x80], 0x837b3d
mov dword [ebp - 0x90], 0x837b73
xor eax, eax
inc ebp
cmp byte [0xc700837b], 0x85
jo 0x837b98
invalid
invalid
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0x837ba1
fld qword [ebp - 0x70]
mov byte [ebp - 0x7c], 0
xor edi, edi
mov esi, dword [ebp - 0x7c]
mov dword [ebp - 8], 0xff
mov eax, dword [ebp - 8]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x24], 0
jbe 0x837bde
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x837bd6
cmp edi, 3
ja case.default.0x837be3
jmp dword [edi*4 + 0x838768]
fld st(0)
and esi, 0xff
rol byte [ecx + 0xffe6], 0
call fcn.008397f4
mov cl, byte [ebp + esi - 0x1bc]
add cl, al
jmp 0x837c6c
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x1bc]
shr eax, 8
add cl, al
jmp 0x837c6c
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x1bc]
shr eax, 0x10
add cl, al
jmp 0x837c6c
fld st(0)
and esi, 0xff
call fcn.008397f4
mov cl, byte [ebp + esi - 0x1bc]
shr eax, 0x18
add cl, al
jmp 0x837c6c
mov eax, dword [ebp - 0x90]
and esi, 0xff
mov cl, byte [ebp + esi - 0x1bc]
mov dl, byte [eax + edi - 4]
add cl, dl
inc edi
mov byte [ebp - 0x7c], cl
cmp edi, 0x1a
jb 0x837c7d
xor edi, edi
add cl, 0x1a
mov byte [ebp - 0x7c], cl
mov esi, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x24]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x24], eax
jbe 0x837c9d
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, edx
jb 0x837bde
je 0x837cdc
mov ecx, eax
mov al, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov bl, byte [ebp + ecx - 0x1bc]
lea ecx, [ebp + ecx - 0x1bc]
xor bl, al
mov byte [ecx], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ecx]
mov dl, bl
xor al, dl
mov byte [ecx], al
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 8], eax
jne 0x837bc3
mov dl, byte [ebp - 0x1b5]
mov edi, dword [ebp - 0x80]
and esi, 0xff
mov byte [ebp - 0x38], dl
xor edx, edx
mov bl, byte [ebp - 0x1b9]
mov al, byte [ebp + esi - 0x1bc]
mov dl, byte [edi + 1]
mov byte [ebp - 0x48], al
xor eax, eax
mov al, byte [edi]
sub dl, 0x14
add al, 2
mov cl, byte [ebp - 0x1b7]
shl al, 4
or al, dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
mov byte [ebp - 0x44], al
fstp st(0)
mov al, byte [ebp + edx - 0x1bc]
lea esi, [ebp + edx - 0x1bc]
mov edx, dword [ebp - 0x1bb]
mov byte [ebp - 0x20], al
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x1bc]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [esi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
mov esi, dword [ebp - 0x10]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x1bc]
add edx, esi
and edx, 0xff
xor bl, byte [ebp + edx - 0x1bc]
mov dl, byte [ebp - 0x44]
mov byte [ebp - 0x48], dl
xor bl, dl
mov byte [ebp - 0x38], bl
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add dl, 2
sub bl, 0x14
shl dl, 4
or dl, bl
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
lea esi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [esi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + esi - 0x1bc]
and ebx, 0xff
mov esi, 2
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
mov byte [ebp - 0x48], bl
xor dl, bl
lea ebx, [edi + 4]
mov byte [ebp - 0x38], dl
mov byte [ebp - 0xbc], dl
mov bl, byte [ebx]
mov dl, byte [edi + 5]
add bl, 2
sub dl, 0x14
shl bl, 4
or dl, bl
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
mov dword [ebp - 0x24], 0xa
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x1bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
mov byte [ebp - 0x48], bl
xor dl, bl
mov byte [ebp - 0x38], dl
mov byte [ebp - 0xbb], dl
mov edx, dword [ebp - 0x80]
lea edi, [edx + 4]
jmp 0x83804a
mov edi, dword [ebp - 0x6c]
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add edi, 2
add dl, 2
shl dl, 4
sub bl, 0x14
mov dword [ebp - 0x6c], edi
or dl, bl
inc esi
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x1bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
mov byte [ebp - 0x48], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x38], dl
jbe 0x83815e
mov byte [ebp + esi - 0xbd], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x838047
lea ebx, [esi + 1]
cmp ebx, 0x19
jge 0x8382c0
mov edx, dword [ebp - 0x18]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 0x80]
lea edi, [edx + esi*2]
mov edx, 0x19
sub edx, ebx
mov dword [ebp - 0x24], edx
jmp 0x83819f
mov edi, dword [ebp - 0x6c]
mov dl, byte [edi + 2]
mov bl, byte [edi + 3]
add edi, 2
add dl, 2
shl dl, 4
sub bl, 0x14
mov dword [ebp - 0x6c], edi
or dl, bl
inc esi
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x1bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
mov byte [ebp - 0x48], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x38], dl
jbe 0x8382b3
mov byte [ebp + esi - 0xbd], dl
mov edx, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x24], edx
jne 0x83819c
mov edi, dword [ebp - 0x80]
inc esi
mov bl, byte [edi + esi*2]
mov dl, byte [edi + esi*2 + 1]
add bl, 2
sub dl, 0x14
shl bl, 4
or dl, bl
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x1bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
mov byte [ebp - 0x48], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x38], dl
jbe 0x8383dd
mov byte [ebp + esi - 0xbd], dl
mov edi, dword [ebp - 0x80]
inc esi
xor edx, edx
xor ebx, ebx
mov dl, byte [edi + esi*2]
mov bl, byte [edi + esi*2 + 1]
add dl, 2
sub bl, 0x14
shl dl, 4
or dl, bl
mov byte [ebp - 0x44], dl
mov edx, dword [ebp - 0x48]
and edx, 0xff
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [edi], bl
mov ebx, dword [ebp - 0x38]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
and edx, 0xff
lea edx, [ebp + edx - 0x1bc]
mov dword [ebp - 0xc], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov bl, byte [ebp + edx - 0x1bc]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x4c], cl
mov edx, dword [ebp - 0x4c]
and edx, 0xff
mov dl, byte [ebp + edx - 0x1bc]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
mov edx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x10]
add ebx, edx
mov dl, byte [ebp + edi - 0x1bc]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x1bc]
mov bl, byte [ebp - 0x44]
xor dl, bl
test esi, esi
mov byte [ebp - 0x38], dl
jbe 0x8384f0
mov byte [ebp + esi - 0xbd], dl
mov edx, dword [ebp - 0x44]
inc esi
and edx, 0xff
lea edi, [ebp + edx - 0x1bc]
mov dl, byte [ebp + edx - 0x1bc]
mov byte [ebp - 0x20], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x18]
mov byte [ebp - 0x30], al
inc bl
mov eax, dword [ebp - 0x30]
mov byte [ebp - 0x18], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x1bc]
lea eax, [ebp + eax - 0x1bc]
mov byte [edi], dl
mov edx, dword [ebp - 0x38]
and edx, 0xff
mov bl, byte [ebp + edx - 0x1bc]
lea edx, [ebp + edx - 0x1bc]
mov byte [eax], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 4], edx
test esi, esi
lea ebx, [ebp + ebx - 0x1bc]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 0xc]
mov dl, byte [ebp - 0x20]
mov byte [ebx], dl
jbe 0x8385ed
mov edx, dword [ebp - 0x20]
mov al, byte [eax]
and edx, 0xff
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x80]
mov bl, byte [edx + esi*2 + 1]
mov dl, byte [edx + esi*2]
add dl, 2
sub bl, 0x14
shl dl, 4
or bl, dl
mov edx, dword [ebp - 0x10]
mov dl, byte [ebp + edx - 0x1bc]
add dl, cl
and edx, 0xff
mov cl, byte [ebp + edx - 0x1bc]
mov dl, byte [edi]
add ecx, edx
mov edx, dword [ebp - 4]
mov edi, dword [ebp - 0x10]
mov dl, byte [edx]
add eax, edi
add ecx, edx
xor edx, edx
and ecx, 0xff
and eax, 0xff
mov dl, byte [ebp + ecx - 0x1bc]
mov cl, byte [ebp + edx - 0x1bc]
xor bl, cl
mov cl, byte [ebp + eax - 0x1bc]
xor bl, cl
mov byte [ebp + esi - 0xbd], bl
mov byte [ebp - 0xa2], 0
lea edi, [ebp - 0xbc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
add esi, 0x280
push esi
call fcn.00839718
mov ecx, esi
mov ebx, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov edi, ebx
push ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea edi, [ebp - 0xbc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x804]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x80
lea edi, [ebp - 0x604]
rep stosd dword es:[edi], eax
call fcn.00832650
mov edi, eax
mov eax, 4
cmp eax, edx
push ebx
sbb esi, esi
mov dword [ebp - 0x9c], edx
neg esi
call fcn.008396d0
add esp, 0xc
test esi, esi
je 0x838723
mov al, byte [edi]
xor esi, esi
xor ecx, ecx
cmp al, 0x4d
jne 0x8386e5
cmp byte [edi + 1], 0x5a
jne 0x8386e5
mov eax, dword [ebp + 0xc]
mov edx, 0x65
mov ecx, 1
mov word [eax], 0x2e
mov word [eax + 8], si
mov word [eax + 4], 0x78
mov word [eax + 6], dx
mov word [eax + 2], dx
jmp 0x8386e8
mov eax, dword [ebp + 0xc]
cmp byte [edi], 0xd0
jne 0x83871f
cmp byte [edi + 1], 0xcf
jne 0x83871f
cmp byte [edi + 2], 0x11
jne 0x83871f
cmp byte [edi + 3], 0xe0
jne 0x83871f
mov ecx, 1
mov word [eax], 0x2e
mov word [eax + 6], 0x69
mov word [eax + 4], 0x73
mov word [eax + 8], si
mov word [eax + 2], 0x6d
cmp ecx, esi
jne 0x838739
mov eax, dword [ebp - 0x8c]
inc eax
cmp eax, 3
mov dword [ebp - 0x8c], eax
jl 0x8365f6
mov edx, dword [ebp - 0x9c]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret