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

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 [0x8de8d8]
test eax, eax
je 0x8374c6
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.008489c9
lea eax, [ebp - 0x360]
push 0x2e
push eax
call fcn.00848727
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x3c], ecx
cmp word [ecx + 4], 0x78
jne 0x836014
cmp word [ecx + 6], 0x65
je 0x836777
fld qword [0x89a578]
fld qword [0x89a578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8bb810]
fsub st(1)
fxch st(1)
fmul qword [0x8a1598]
fadd qword [0x8ad738]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8bb808]
fnstsw ax
test ah, 0x41
jne 0x836059
fld st(0)
fmul qword [0x8bb800]
fsubp st(2)
fadd qword [0x8a1410]
fcom qword [0x8bb7f8]
fnstsw ax
test ah, 1
jne 0x836020
fxch st(1)
fst qword [ebp - 0x50]
fxch st(1)
fstp st(0)
fcomp qword [0x89a578]
fnstsw ax
test ah, 1
je 0x8360a5
jp 0x8360b8
jae 0x836101
popal
xor eax, 0x24485446
bound ebp, qword [eax]
jo 0x8360d5
jnp 0x836101
cmp eax, 0x175c3b4b
mov ah, 0x19
stosb byte es:[edi], al
sbb byte [edx - 0x54ef58e2], dh
jmp 0x83672d
mov dword [ebp - 0x28], 0x836096
mov dword [ebp - 0x54], 0x836082
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
jb 0x8360b5
test al, 0xfe
invalid
fld qword [ebp - 0x50]
mov byte [ebp - 0x18], 0
xor edi, edi
mov esi, dword [ebp - 0x18]
mov dword [ebp - 8], 0xff
add byte [eax], al
mov eax, dword [ebp - 8]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 0x38], 0
jbe 0x8360f2
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x8360ea
cmp edi, 3
ja case.default.0x8360f7
jmp dword [edi*4 + 0x8374d0]
fld st(0)
and esi, 0xff
call fcn.00848444
out 0xff, al
add byte [eax], al
add al, ch
cmp dword [ebx], esp
add dword [eax], eax
mov cl, byte [ebp + esi - 0x158]
jmp 0x836173
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
jmp 0x836173
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
jmp 0x836173
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
jmp 0x836173
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, 0x18
mov byte [ebp - 0x18], cl
jb 0x836186
xor edi, edi
add cl, 0x18
mov byte [ebp - 0x18], cl
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x38], eax
jbe 0x8361a6
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp eax, edx
jb 0x8360f2
je 0x8361e6
mov cl, byte [ebp + edx - 0x158]
lea eax, [ebp + edx - 0x158]
mov edx, dword [ebp - 8]
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
xor bl, cl
mov byte [edx], bl
mov cl, bl
mov bl, byte [eax]
xor bl, cl
mov byte [eax], bl
mov cl, byte [edx]
mov al, bl
xor cl, al
mov byte [edx], cl
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 8], eax
jne 0x8360d7
mov dl, byte [ebp - 0x151]
mov edi, dword [ebp - 0x28]
and esi, 0xff
mov byte [ebp - 0x18], dl
mov dl, byte [edi]
mov bl, byte [ebp - 0x155]
mov al, byte [ebp + esi - 0x158]
mov cl, byte [ebp - 0x153]
mov byte [ebp - 0x30], al
mov al, byte [edi + 1]
add al, 0x5a
shl dl, 4
or al, dl
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x30]
and eax, 0xff
fstp st(0)
mov dl, byte [ebp + eax - 0x158]
lea esi, [ebp + eax - 0x158]
mov byte [ebp - 0x24], 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 - 0x2c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x158]
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 - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x24]
mov byte [ebx], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 0x1c]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 8]
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 - 4]
mov byte [ebp - 0x30], dl
xor bl, dl
mov dl, byte [edi + 3]
mov byte [ebp - 0x18], bl
mov bl, byte [edi + 2]
add dl, 0x5a
shl bl, 4
or dl, bl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x2c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x158]
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 - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x24]
mov byte [ebx], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 8]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
mov byte [ebp - 0x30], bl
xor dl, bl
mov byte [ebp - 0x18], dl
movsx dx, dl
mov word [ebp - 0x48], dx
mov dl, byte [edi + 5]
mov bl, byte [edi + 4]
add dl, 0x5a
shl bl, 4
or dl, bl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x2c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 8], edx
lea ebx, [ebp + ebx - 0x158]
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 - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x24]
mov byte [ebx], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 8]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
mov byte [ebp - 0x30], bl
xor dl, bl
mov byte [ebp - 0x18], dl
movsx dx, dl
mov word [ebp - 0x46], dx
mov dl, byte [edi + 7]
mov bl, byte [edi + 6]
add dl, 0x5a
shl bl, 4
or dl, bl
mov byte [ebp - 4], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x2c], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 8], edx
mov byte [esi], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
lea ebx, [ebp + ebx - 0x158]
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 - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x24]
mov byte [ebx], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 8]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 4]
xor dl, bl
mov byte [ebp - 0x18], dl
movsx dx, dl
mov word [ebp - 0x44], dx
mov edx, dword [ebp - 4]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x24], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x14]
mov byte [ebp - 0x2c], al
inc bl
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x14], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x158]
lea eax, [ebp + eax - 0x158]
mov byte [esi], dl
mov edx, dword [ebp - 0x18]
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 - 0xc], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x24]
mov byte [ebx], dl
mov edx, dword [ebp - 0x24]
and edx, 0xff
mov bl, byte [edi + 8]
mov dword [ebp - 0x1c], edx
mov dl, byte [edi + 9]
mov edi, dword [ebp - 0x1c]
add dl, 0x5a
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 - 0x40], 0
mov cl, byte [ebp + ebx - 0x158]
mov bl, byte [esi]
mov esi, dword [ebp - 0xc]
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 - 0x42], cx
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp - 0x48]
lea eax, [ebp - 0x360]
xor esi, esi
push edx
push eax
mov word [ecx], si
call fcn.0084899f
lea ecx, [ebp - 0x360]
lea edx, [ebp - 0x568]
push ecx
push edx
call fcn.00848eae
mov ecx, 0x100
xor eax, eax
mov edi, 0x8dc9c0
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x360]
push eax
push 0x8dc9c0
call fcn.008489c9
add esp, 0x18
lea ecx, [ebp - 0x34]
push ecx
push esi
push esi
push 0x832ea0
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
fld qword [0x89a578]
fld qword [0x89a578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8bb7f0]
fsub st(1)
fxch st(1)
fmul qword [0x8a9668]
fadd qword [0x8a9d40]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8a15b8]
fnstsw ax
test ah, 0x41
jne 0x8367cf
fld st(0)
fmul qword [0x8bb7e8]
fsubp st(2)
fadd qword [0x8a1578]
fcom qword [0x8bb7e0]
fnstsw ax
test ah, 1
jne 0x836796
fxch st(1)
fst qword [ebp - 0x50]
fxch st(1)
fstp st(0)
fcomp qword [0x89a578]
fnstsw ax
test ah, 1
je 0x836829
popal
xor bh, byte [ebp + 0x2c]
jl 0x836820
inc esp
push esp
push edi
and ecx, dword [edi + 0x7e]
je 0x836843
arpl word [edx + ebx*2 + 0x6b], dx
push eax
push eax
push ebx
push edi
popal
js 0x836865
pop esp
outsd dx, dword [esi]
inc edi
inc ebx
imul ebx, dword [esi + 0x74], 0x19
dec ebp
and al, byte [edi + 0x18]
inc ebx
and ecx, dword [esi + 0x1e]
push ds
dec ebp
and byte [ebx - 0x17], cl
inc eax
push es
add byte [eax], al
mov dword [ebp - 0x38], 0x836818
mov dword [ebp - 0x3c], 0x8367f8
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
jb 0x836839
add dword [eax], eax
add byte [edx - 0xf], dh
fld qword [ebp - 0x50]
mov byte [ebp - 4], 0
xor edi, edi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x1c], 0xff
mov eax, dword [ebp - 0x1c]
mov ebx, 1
cmp eax, ebx
mov dword [ebp - 8], 0
jbe 0x836876
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x83686e
cmp edi, 3
ja case.default.0x83687b
jmp dword [edi*4 + 0x8374e0]
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
jmp 0x8368f7
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
jmp 0x8368f7
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
jmp 0x8368f7
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
jmp 0x8368f7
mov edx, dword [ebp - 0x3c]
and esi, 0xff
mov cl, byte [edx + edi - 4]
mov al, byte [ebp + esi - 0x158]
add cl, al
inc edi
cmp edi, 0x24
mov byte [ebp - 4], cl
jb 0x83690a
xor edi, edi
add cl, 0x24
mov byte [ebp - 4], cl
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 8], eax
jbe 0x83692a
mov eax, edx
xor edx, edx
div dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x836876
je 0x836965
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp + edx - 0x158]
mov bl, byte [ebp + ecx - 0x158]
lea edx, [ebp + ecx - 0x158]
mov cl, byte [eax]
xor bl, cl
mov byte [edx], bl
mov cl, bl
mov bl, byte [eax]
xor bl, cl
mov byte [eax], bl
mov cl, byte [edx]
mov al, bl
xor cl, al
mov byte [edx], cl
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
jne 0x83685b
mov dl, byte [ebp - 0x151]
and esi, 0xff
mov byte [ebp - 0x18], dl
mov bl, byte [ebp - 0x155]
mov al, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 0x38]
mov byte [ebp - 0x2c], al
xor eax, eax
mov al, byte [esi]
mov dl, byte [esi + 1]
add al, 0xb
sub dl, 0x43
shl al, 4
or al, dl
mov cl, byte [ebp - 0x153]
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 0x2c]
and eax, 0xff
mov dword [ebp - 0x1c], 1
fstp st(0)
mov dl, byte [ebp + eax - 0x158]
lea esi, [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 - 8], al
mov byte [ebp - 0xc], dl
mov edx, dword [ebp - 8]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [esi], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0xc]
and ebx, 0xff
mov dword [ebp - 4], 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 - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x30], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 dl, byte [edi]
mov edi, dword [ebp - 0x30]
mov bl, byte [ebp + ebx - 0x158]
add edx, edi
and edx, 0xff
xor bl, byte [ebp + edx - 0x158]
mov dl, byte [ebp - 0x1d]
mov byte [ebp - 0x2c], dl
xor bl, dl
mov edx, dword [ebp - 0x38]
mov byte [ebp - 0x18], bl
lea esi, [edx + 2]
mov dl, byte [edx + 3]
mov bl, byte [esi]
sub dl, 0x43
add bl, 0xb
mov dword [ebp - 0x54], 2
shl bl, 4
or dl, bl
mov byte [ebp - 0x1d], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0xc]
mov byte [ebp - 8], al
inc bl
mov edx, dword [ebp - 8]
mov byte [ebp - 0xc], bl
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dword [ebp - 0x24], esi
mov dl, byte [esi]
mov byte [edi], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov esi, dword [ebp - 0xc]
and esi, 0xff
mov dword [ebp - 4], edx
mov bl, byte [ebp + esi - 0x158]
lea esi, [ebp + esi - 0x158]
mov byte [edx], bl
mov dl, byte [ebp - 0x10]
mov byte [esi], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x30], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 0x24]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x30]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
mov edi, dword [ebp - 0x1c]
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x1d]
mov byte [ebp - 0x2c], bl
xor dl, bl
mov byte [ebp - 0x18], dl
movsx dx, dl
mov word [ebp - 0x48], dx
mov edx, dword [ebp - 0x38]
lea ebx, [edx + 2]
lea edx, [ebp - 0x48]
mov dword [ebp - 0x14], edx
jmp 0x836bd0
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x14]
add ebx, 2
add edx, 2
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], edx
mov dl, byte [ebx + 1]
mov bl, byte [ebx]
sub dl, 0x43
add bl, 0xb
inc edi
shl bl, 4
or dl, bl
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x1d], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
mov bl, byte [ebp - 0xc]
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov dl, byte [esi]
add al, dl
inc bl
mov byte [ebp - 8], al
mov byte [ebp - 0xc], bl
mov edx, dword [ebp - 8]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dword [ebp - 0x24], esi
mov dl, byte [esi]
mov byte [edi], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov esi, dword [ebp - 0xc]
and esi, 0xff
mov dword [ebp - 4], edx
mov bl, byte [ebp + esi - 0x158]
lea esi, [ebp + esi - 0x158]
mov byte [edx], bl
mov dl, byte [ebp - 0x10]
mov byte [esi], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x30], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov bl, byte [edi]
mov edi, dword [ebp - 4]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 0x24]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x30]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
mov edi, dword [ebp - 0x1c]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x1d]
mov byte [ebp - 0x2c], bl
xor dl, bl
test edi, edi
mov byte [ebp - 0x18], dl
jbe 0x836cee
mov ebx, dword [ebp - 0x14]
movsx dx, dl
mov word [ebx], dx
mov edx, dword [ebp - 0x54]
dec edx
mov dword [ebp - 0x54], edx
jne 0x836bcd
lea ebx, [edi + 1]
cmp ebx, 7
jge 0x836e63
mov edx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x38]
lea esi, [edx + edi*2]
lea edx, [ebp + edi*2 - 0x4a]
mov dword [ebp - 0x38], edx
mov edx, 7
sub edx, ebx
mov dword [ebp - 0x54], edx
jmp 0x836d36
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov bl, byte [esi + 2]
add esi, 2
add edx, 2
mov dword [ebp - 0x38], edx
add bl, 0xb
mov dl, byte [esi + 1]
mov dword [ebp - 0x3c], esi
sub dl, 0x43
inc edi
shl bl, 4
or dl, bl
mov byte [ebp - 0x1d], dl
mov edx, dword [ebp - 0x2c]
and edx, 0xff
lea esi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x14]
mov bl, byte [edx]
mov dl, byte [ebp - 0xc]
add al, bl
inc dl
mov byte [ebp - 8], al
mov byte [ebp - 0xc], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [esi], bl
mov ebx, dword [ebp - 0x18]
and ebx, 0xff
mov dword [ebp - 0x24], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 4], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
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 - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x30], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov bl, byte [esi]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
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 - 0x24]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x30]
add ebx, edx
mov dl, byte [ebp + esi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x1d]
mov byte [ebp - 0x2c], bl
xor dl, bl
test edi, edi
mov byte [ebp - 0x18], dl
jbe 0x836e56
mov esi, dword [ebp - 0x38]
movsx dx, dl
mov word [esi], dx
mov edx, dword [ebp - 0x54]
dec edx
mov dword [ebp - 0x54], edx
jne 0x836d33
mov word [ebp - 0x3e], 0
fld qword [0x89a578]
fld qword [0x89a578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8a1438]
fsub st(1)
fxch st(1)
fmul qword [0x8a1430]
fadd qword [0x8a1428]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8a1420]
fnstsw ax
test ah, 0x41
jne 0x836eae
fld st(0)
fmul qword [0x8a1418]
fsubp st(2)
fadd qword [0x8a1410]
fcom qword [0x8a1408]
fnstsw ax
test ah, 1
jne 0x836e75
fxch st(1)
fst qword [ebp - 0x58]
fxch st(1)
fstp st(0)
fcomp qword [0x89a578]
fnstsw ax
test ah, 1
je 0x836ef4
sub eax, 0x7735656d
jnp 0x836f58
jno 0x836f4b
push esi
imul esp, dword [ecx + esi + 0x26], 0x69
jae 0x836f14
call 0xf3b05c1b
sub esi, edi
jmp 0x837492
mov dword [ebp - 0x38], 0x836ee7
mov dword [ebp - 0x3c], 0x836ed7
xor eax, eax
mov byte [ebp + eax - 0x158], al
inc eax
cmp eax, 0x100
jb 0x836f04
fld qword [ebp - 0x58]
mov byte [ebp - 4], 0
mov eax, 0xff
inc ebp
test al, 0xc6
inc ebp
cld
add byte [eax + 0xff], bh
mov esi, dword [ebp - 4]
xor edi, edi
mov dword [ebp - 8], eax
jmp 0x836f2c
mov eax, dword [ebp - 8]
mov ebx, 1
mov dword [ebp - 0x54], 0
cmp eax, ebx
jbe 0x836f44
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x836f3c
cmp edi, 3
ja case.default.0x836f49
jmp dword [edi*4 + 0x8374f0]
mov ebp, 0x8374f0
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
add cl, al
jmp 0x836fcf
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 8
add cl, al
jmp 0x836fcf
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x10
add cl, al
jmp 0x836fcf
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x158]
shr eax, 0x18
add cl, al
jmp 0x836fcf
mov eax, dword [ebp - 0x3c]
and esi, 0xff
mov cl, byte [ebp + esi - 0x158]
mov dl, byte [eax + edi - 4]
add cl, dl
inc edi
mov byte [ebp - 4], cl
cmp edi, 0x14
jb 0x836fe0
xor edi, edi
add cl, 0x14
mov byte [ebp - 4], cl
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x54]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x54], eax
jbe 0x837000
mov eax, edx
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp edx, eax
ja 0x836f44
cmp eax, edx
je 0x83703d
mov ecx, dword [ebp - 8]
lea eax, [ebp + edx - 0x158]
mov bl, byte [ebp + ecx - 0x158]
lea edx, [ebp + ecx - 0x158]
mov cl, byte [eax]
xor bl, cl
mov byte [edx], bl
mov cl, bl
mov bl, byte [eax]
xor bl, cl
mov byte [eax], bl
mov cl, byte [edx]
mov al, bl
xor cl, al
mov byte [edx], cl
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 8], eax
jne 0x836f29
mov dl, byte [ebp - 0x151]
and esi, 0xff
mov byte [ebp - 0x28], dl
xor edx, edx
mov al, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 0x38]
mov byte [ebp - 0x18], al
xor eax, eax
mov al, byte [esi]
mov dl, byte [esi + 1]
add eax, 0xffffffdc
sub edx, 0xe8
shl eax, 4
or al, dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
mov byte [ebp - 0x30], al
mov bl, byte [ebp - 0x155]
mov cl, byte [ebp - 0x153]
mov al, byte [ebp + edx - 0x158]
lea edi, [ebp + edx - 0x158]
mov edx, dword [ebp - 0x157]
mov byte [ebp - 0xc], al
mov eax, edx
and eax, 0xff
fstp st(0)
mov al, byte [ebp + eax - 0x158]
add al, bl
inc dl
mov byte [ebp - 8], al
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x28]
and ebx, 0xff
mov dword [ebp - 0x24], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x14], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0xc]
mov byte [ebx], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov dword [ebp - 4], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x14]
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 - 4]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x158]
mov edx, dword [ebp - 0x24]
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 - 0x30]
mov byte [ebp - 0x18], dl
xor bl, dl
mov byte [ebp - 0x28], bl
mov dl, byte [esi + 2]
mov bl, byte [esi + 3]
add dl, 0xc
add bl, 0x18
shl dl, 4
or dl, bl
mov byte [ebp - 0x30], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0xc], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x1c]
add al, bl
inc dl
mov byte [ebp - 8], al
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x28]
and ebx, 0xff
mov dword [ebp - 0x24], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x14], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0xc]
mov byte [ebx], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov dword [ebp - 4], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x14]
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 - 0x24]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 4]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x30]
mov byte [ebp - 0x18], bl
xor dl, bl
mov byte [ebp - 0x28], dl
movsx dx, dl
mov word [ebp - 0x50], dx
mov bl, byte [esi + 4]
mov dl, byte [esi + 5]
add bl, 0xc
add dl, 0x18
shl bl, 4
or dl, bl
mov byte [ebp - 0x30], dl
mov edx, dword [ebp - 0x18]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0xc], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
mov dl, byte [ebp - 0x1c]
add al, bl
inc dl
mov byte [ebp - 8], al
mov byte [ebp - 0x1c], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [edi], bl
mov ebx, dword [ebp - 0x28]
and ebx, 0xff
mov dword [ebp - 0x24], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x14], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
and edx, 0xff
lea edx, [ebp + edx - 0x158]
mov dword [ebp - 0x10], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0xc]
mov byte [ebx], dl
mov edx, dword [ebp - 0xc]
and edx, 0xff
mov dword [ebp - 4], edx
mov bl, byte [ebp + edx - 0x158]
add cl, bl
mov ebx, dword [ebp - 0x14]
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 - 0x24]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 4]
add ebx, edx
mov dl, byte [ebp + edi - 0x158]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x158]
mov bl, byte [ebp - 0x30]
xor dl, bl
mov byte [ebp - 0x28], dl
movsx dx, dl
mov word [ebp - 0x4e], dx
mov edx, dword [ebp - 0x30]
and edx, 0xff
lea edi, [ebp + edx - 0x158]
mov dl, byte [ebp + edx - 0x158]
mov byte [ebp - 0xc], dl
mov edx, dword [ebp - 0x10]
mov bl, byte [edx]
add al, bl
mov bl, byte [ebp - 0x1c]
mov byte [ebp - 8], al
inc bl
mov eax, dword [ebp - 8]
mov byte [ebp - 0x1c], bl
and eax, 0xff
mov dl, byte [ebp + eax - 0x158]
lea eax, [ebp + eax - 0x158]
mov byte [edi], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
mov bl, byte [ebp + edx - 0x158]
lea edx, [ebp + edx - 0x158]
mov byte [eax], bl
mov ebx, dword [ebp - 0x1c]
and ebx, 0xff
mov dword [ebp - 0x14], edx
lea ebx, [ebp + ebx - 0x158]
mov dword [ebp - 0x10], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov ebx, dword [ebp - 0x10]
mov dl, byte [ebp - 0xc]
mov byte [ebx], dl
mov edx, dword [ebp - 0xc]
mov bl, byte [esi + 6]
and edx, 0xff
mov dword [ebp - 4], edx
mov dl, byte [esi + 7]
mov esi, dword [ebp - 4]
sub bl, 4
add dl, 0x18
mov al, byte [eax]
shl bl, 4
or dl, bl
mov bl, byte [ebp + esi - 0x158]
mov esi, dword [ebp - 0x14]
add bl, cl
and ebx, 0xff
mov word [ebp - 0x4a], 0
mov cl, byte [ebp + ebx - 0x158]
mov bl, byte [edi]
mov edi, dword [ebp - 4]
add ecx, ebx
mov bl, byte [esi]
add eax, edi
add ecx, ebx
xor ebx, ebx
and ecx, 0xff
and eax, 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 - 0x4c], cx
push 1
lea edx, [ebp - 0x50]
push 0
lea eax, [ebp - 0x360]
push edx
lea ecx, [ebp - 0x48]
push eax
push ecx
push 0
call dword [0x8de8a4]
cmp eax, 0x20
pop ebx
jle 0x8374be
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