Function at 0x6531e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov al, byte [0xee8bea]
push ebx
xor ebx, ebx
cmp al, 3
push edi
je 0x653203
cmp al, 2
je 0x653203
cmp al, 4
je 0x653203
cmp al, 5
je 0x653203
xor eax, eax
jmp 0x653208
mov eax, 1
xor al, 1
mov byte [esi + 0x39], al
mov ax, word [esi + 0x1c4]
mov byte [esi + 0x3a], 1
mov edi, dword [0x91d3f0]
fld dword [edi + 0xb34]
mov word [ebp - 4], ax
call fcn.0043bd30
fld dword [edi + 0x434]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
push 0xfffffffffffffffe
push esi
mov dword [ebp - 8], eax
call fcn.00678d90
movzx eax, word [esi + 0xdc]
add esp, 0x18
dec eax
cmp eax, 0x3f
mov byte [esi + 0x116], 0
ja case.0x653284.10
movzx ecx, byte [eax + 0x654abc]
jmp dword [ecx*4 + 0x654a78]
push esi
call fcn.0061e9d0
push esi
call fcn.0061e7e0
add esp, 8
test eax, eax
je 0x6532bf
push 0x113b
push 0x34f
push esi
call fcn.0063d850
add esp, 0xc
mov word [esi + 0xdc], 0x10
jmp 0x654680
push esi
call fcn.00691c50
add esp, 4
jmp 0x654680
push esi
call fcn.0061e9d0
push 2
push esi
call fcn.00677850
add esp, 0xc
test eax, eax
jne 0x6532ed
mov byte [esi + 0x130], al
jmp 0x654680
push 0x400
push esi
call fcn.0063d620
mov ecx, dword [0xeebb30]
add esp, 8
cmp ecx, 0xa
jne 0x653311
mov dx, word [esi + 0xea]
mov word [ebp - 4], dx
mov eax, dword [0x91cfa4]
cmp word [eax + 0xc], 0x18
jge 0x65336d
mov dl, byte [eax + 0x19]
test dl, dl
jne 0x65336d
mov ax, word [esi + 0x2dc]
cmp ax, 0x28d
je 0x65336d
cmp ax, 0x130
je 0x65336d
cmp dword [esi + 0xe0], ebx
je 0x65336d
cmp ax, 0x12e
je 0x65336d
cmp ax, 0x340
je 0x65336d
mov eax, dword [esi + 0x2e4]
push eax
push 0x262
push esi
call fcn.006409b0
mov cx, word [esi + 0xea]
mov word [esi + 0xec], cx
jmp 0x65337d
cmp ecx, 1
jne 0x653380
mov edx, dword [ebp - 4]
push ecx
push edx
push esi
call fcn.00648830
add esp, 0xc
mov al, byte [esi + 0x130]
test al, al
jne 0x654680
mov eax, dword [0xeebb30]
dec eax
cmp eax, 9
ja case.0x6533a0.2
movzx eax, byte [eax + 0x654b10]
jmp dword [eax*4 + 0x654afc]
mov byte [esi + 0xda], 0x2e
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.00604d80
add esp, 4
jmp 0x654680
fld dword [esi + 0x2c4]
call fcn.0043bd30
cmp eax, ebx
jg 0x6533d9
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x6537b6
cmp dword [esi + 0xe0], 0x400
jl 0x6537b6
fld dword [esi + 0x2cc]
call fcn.0043bd30
cmp eax, ebx
jg 0x653411
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb93c]
fnstsw ax
test ah, 0x41
je 0x6537b6
mov al, byte [esi + 0xd6]
test al, al
je 0x6537b6
mov ecx, dword [0xeebb14]
mov dl, byte [ecx + 0x87158c]
shr dl, 1
mov byte [esi + 0x130], dl
mov word [esi + 0xdc], 8
jmp 0x654680
push esi
call fcn.0061e9d0
mov eax, dword [0xeebb30]
add esp, 4
cmp eax, 0xa
je 0x653479
mov ax, word [esi + 0xec]
mov word [esi + 0xf0], ax
push 0x1000
push esi
call fcn.006b36c0
add esp, 8
cmp word [esi + 0x2dc], 0x262
jne 0x65359f
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
movzx edi, byte [esi + 0x124]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb662c]
shr ecx, 0x12
and ecx, 0x7f
push 0x32
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, edi
sub ecx, edx
lea edx, [edi + edi*2]
add ecx, 0x16
shl edx, 2
push ecx
mov eax, 0x1300
sub eax, edx
push eax
push esi
call fcn.0063dd50
mov al, byte [esi + 0x130]
add esp, 0x14
test al, al
je 0x65357d
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x434]
call fcn.0043bd30
cmp eax, ebx
jg 0x65351e
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x65357d
fld dword [esi + 0x2c4]
call fcn.0043bd30
cmp eax, ebx
jg 0x653542
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x65357d
fld dword [esi + 0x2cc]
call fcn.0043bd30
cmp eax, ebx
jg 0x653566
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb92c]
fnstsw ax
test ah, 0x41
jne 0x654680
push 8
push ebx
push 0x267
push esi
call fcn.0061ecc0
mov edx, dword [esi + 0xe0]
add esp, 0x10
mov dword [esi + 0xe4], edx
jmp 0x654680
cmp dword [0xeebb30], 1
je 0x653613
cmp dword [esi + 0xe0], 0x800
jge 0x653613
push 0x24
push esi
call fcn.0061e770
add esp, 8
test eax, eax
je 0x653613
push 0x36
push 0x34f
push esi
call fcn.0061e910
mov ecx, dword [esi + 0xe0]
imul ecx, ecx, 0x5e
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add esp, 0xc
add edx, eax
mov dword [esi + 0xe0], edx
mov ecx, dword [0xeebb14]
mov dl, byte [ecx + 0x87158c]
mov byte [esi + 0x130], dl
mov word [esi + 0xdc], 8
jmp 0x654680
push esi
call fcn.0061e7e0
add esp, 4
test eax, eax
je 0x653643
push esi
call fcn.0063ed40
mov eax, dword [0xeebb14]
mov cl, byte [eax + 0x87158c]
add esp, 4
mov byte [esi + 0x130], cl
mov word [esi + 0xdc], 8
push esi
call fcn.0068e3a0
add esp, 4
jmp 0x654680
push esi
call fcn.0061e9d0
mov dx, word [esi + 0xec]
push 0x1000
push esi
mov word [esi + 0xf0], dx
call fcn.006b36c0
push esi
call fcn.0061e7e0
add esp, 0x10
test eax, eax
je 0x6536a3
push ebx
push esi
call fcn.00677850
add esp, 8
test eax, eax
je 0x65369a
push ebx
push 0x12e
push esi
call fcn.0061e910
add esp, 0xc
mov word [esi + 0xdc], 2
fld dword [esi + 0x2e4]
call fcn.0043bd30
cmp eax, 0x28
jg 0x65371f
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
movzx edi, byte [esi + 0x124]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb662c]
shr eax, 0x12
and eax, 0x7f
push 0x32
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, edi
sub eax, edx
add eax, 0x16
push eax
mov eax, 0x140
sub eax, edi
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
push esi
call fcn.0063dd50
add esp, 0x14
jmp 0x654680
fld dword [esi + 0x2cc]
call fcn.0043bd30
cmp eax, ebx
jg 0x653730
neg eax
mov ecx, dword [esi + 0xe0]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb93c]
fnstsw ax
test ah, 0x41
mov eax, 0x51eb851f
jne 0x653768
imul ecx, ecx, 0x5a
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esi + 0xe0], edx
jmp 0x654680
imul ecx, ecx, 0x5e
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esi + 0xe0], edx
jmp 0x654680
push esi
call fcn.0061e9d0
push 0x400
push esi
call fcn.0063d620
mov eax, dword [esi + 0xe0]
add esp, 0xc
cmp eax, 0x400
jge 0x654680
push ebx
push 0x130
push esi
call fcn.0061e910
add esp, 0xc
mov byte [esi + 0xda], 0
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.0061e9d0
push esi
call fcn.0061e7e0
add esp, 8
test eax, eax
je 0x654680
push 4
push ebx
push 0x130
push esi
mov dword [esi + 0xe0], ebx
call fcn.00655db0
add esp, 0x10
mov byte [esi + 0xda], 0
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.0061e9d0
push esi
call fcn.0061e7e0
add esp, 8
test eax, eax
je 0x65383c
push ebx
push 0x130
push esi
call fcn.0061e910
add esp, 0xc
mov byte [esi + 0xda], 0
mov word [esi + 0xdc], bx
jmp 0x653845
push esi
call fcn.00691c50
add esp, 4
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x65386d
movzx edx, byte [esi + 0xd8]
cmp byte [edx + eax + 0x35], 1
jne 0x65386d
push esi
call fcn.0064b8f0
add esp, 4
jmp 0x654680
cmp dword [0xeebb30], 1
jne 0x654680
mov cl, byte [eax + 0xa5]
test cl, cl
jne 0x654680
mov edi, dword [0x91d3f0]
fld dword [edi + 0xb34]
call fcn.0043bd30
fld dword [edi + 0x434]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x9000
ja 0x654680
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x7b4]
fcomp dword [0x8d35f4]
fnstsw ax
test ah, 0x41
jne 0x654680
fld dword [ecx + 0x2c]
fabs
fcomp dword [0x8d35dc]
fnstsw ax
test ah, 5
jp 0x654680
xor eax, eax
mov ax, word [esi + 0x1c4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x654680
mov byte [esi + 0xda], 0x12
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.0061e9d0
mov edi, dword [ebp - 4]
xor edx, edx
mov dx, word [esi + 0xec]
push 0x4000
lea eax, [edi + 0x8000]
push edx
push eax
call fcn.00643cb0
movzx ecx, byte [esi + 0x124]
lea ecx, [ecx + ecx*2]
push 0x800
shl ecx, 2
mov edx, 0x1900
sub edx, ecx
push edx
push edi
push eax
push esi
call fcn.00672120
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push edi
call fcn.006442a0
add esp, 0x2c
cmp ax, 0x40
jbe 0x6539af
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
je 0x654680
mov byte [esi + 0xda], 1
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.0061e9d0
push esi
call fcn.0061e7e0
add esp, 8
test eax, eax
je 0x653a3d
push ebx
push 0x130
push esi
call fcn.0061e910
mov eax, dword [0xeebb30]
add esp, 0xc
cmp eax, 4
je 0x653a1f
cmp eax, 9
je 0x653a1f
add word [esi + 0xec], 0x8000
push 0x400
push esi
mov word [esi + 0xdc], 2
call fcn.0063d620
push esi
call fcn.00643d80
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov word [esi + 0x102], bx
mov byte [esi + 0x117], 0x32
mov byte [esi + 0xda], 0xfd
mov word [esi + 0xdc], 0x16
push 0x400
push esi
call fcn.0063d620
push esi
call fcn.00643d80
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [0xee8bea]
cmp al, 3
je 0x653a70
cmp al, 2
je 0x653a70
cmp al, 4
je 0x653a70
cmp al, 5
je 0x653a70
xor eax, eax
jmp 0x653a75
mov eax, 1
xor al, 1
push esi
mov byte [esi + 0x39], al
mov byte [esi + 0x3a], 6
call fcn.0061e9d0
push 0x28
push esi
call fcn.0061e8d0
mov eax, dword [esi + 0xe0]
mov ecx, dword [esi + 0x11c]
add esp, 0xc
cmp eax, ecx
push ebx
jl 0x653acd
push 0x2d
push esi
call fcn.0061e910
push 4
push esi
call fcn.00655eb0
mov ecx, dword [esi + 0xe0]
add esp, 0x14
mov dword [esi + 0xe4], ecx
mov word [esi + 0xdc], 3
jmp 0x654680
mov dx, word [esi + 0x1c4]
push esi
mov word [esi + 0xf0], dx
call fcn.00678730
add esp, 8
test eax, eax
je 0x653afd
xor eax, eax
mov ax, word [esi + 0xf0]
push 1
push eax
push esi
call fcn.00648830
add esp, 0xc
xor ecx, ecx
mov cl, byte [esi]
push ecx
call fcn.0063dd30
add esp, 4
cmp al, 0xff
je 0x653b28
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd30
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x653b2d
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov edi, edx
cmp byte [edi + 0xda], 0x9d
jne 0x653b92
fld dword [edi + 0x2cc]
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x10000
ja 0x653b92
push esi
call fcn.00643d80
add esp, 4
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x130]
test al, al
jne 0x653baf
mov byte [esi + 0xda], 7
mov word [esi + 0xdc], bx
jmp 0x654680
mov edx, dword [0x91d3f0]
cmp word [edx + 0x8c], 0xb
jne 0x653c6f
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0xf]
cmp cl, byte [edi]
jne 0x653c6f
mov al, byte [edi + 0xda]
cmp al, 0x82
je 0x653c6f
cmp al, 0x9d
je 0x653c6f
mov ebx, edx
fld dword [ebx + 0x18]
call fcn.0043bd30
fld dword [ebx + 0x10]
push eax
call fcn.0043bd30
fld dword [edi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov edi, dword [0x91d3f0]
fld dword [edi + 0x18]
mov ebx, eax
call fcn.0043bd30
fld dword [edi + 0x10]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x20
cmp eax, ebx
jae 0x653c6d
xor ebx, ebx
mov byte [esi + 0xda], 1
mov word [esi + 0xdc], bx
jmp 0x654680
xor ebx, ebx
mov edx, dword [0xeebb14]
movzx eax, byte [edx + 0x87158c]
movzx ecx, byte [esi + 0x130]
sub eax, 0xa
cmp ecx, eax
jge 0x654680
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x654680
movzx edx, byte [esi + 0xd8]
cmp byte [edx + eax + 0x35], 1
jne 0x654680
mov byte [esi + 0xda], 1
mov word [esi + 0xdc], bx
jmp 0x654680
push esi
call fcn.0061e9d0
xor eax, eax
mov ax, word [esi + 0xea]
push eax
push esi
call fcn.0067ba70
mov al, byte [esi + 0x130]
add esp, 0xc
test al, al
je 0x653d32
fld dword [esi + 0x2c4]
call fcn.0043bd30
cmp eax, ebx
jg 0x653cf7
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x653d32
fld dword [esi + 0x2cc]
call fcn.0043bd30
cmp eax, ebx
jg 0x653d1b
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb93c]
fnstsw ax
test ah, 0x41
jne 0x654680
mov byte [esi + 0xda], 0
mov word [esi + 0xdc], bx
jmp 0x654680
mov di, word [esi + 0x1c4]
push 8
call fcn.0063c860
add eax, 0x10
cdq
sub eax, edx
sar eax, 1
push edi
push esi
mov byte [esi + 0x130], al
call fcn.006962b0
mov al, byte [esi + 0xd6]
add esp, 0xc
test al, al
jne 0x653d8e
cmp word [esi + 0x2dc], 0x130
jne 0x653d8e
push esi
call fcn.006fd6f0
add esp, 4
jmp 0x654680
mov word [esi + 0xdc], 0x12
jmp 0x654680
mov di, word [esi + 0xea]
jmp 0x653d4c
cmp dword [0xeebb30], 7
jne 0x653e2b
mov edi, dword [0x91cfa4]
mov al, byte [edi + 0x1a]
cmp al, 0xff
je 0x653dc8
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x653dcd
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
mov cl, byte [edx + 0xd9]
mov dl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
sete al
xor ecx, ecx
test dl, dl
sete cl
lea eax, [eax + eax - 1]
lea ecx, [ecx + ecx - 1]
cmp ecx, eax
je 0x653e0d
mov dl, byte [edi + 0xa0]
test dl, dl
je 0x653e17
cmp ecx, eax
jne 0x653e2b
mov al, byte [edi + 0xa0]
test al, al
je 0x653e2b
pop edi
mov word [esi + 0xdc], bx
mov byte [esi + 0xda], 0x33
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.0061e9d0
push ebx
push esi
call fcn.00695840
mov eax, dword [esi + 0xe0]
add esp, 0xc
cmp eax, ebx
jne 0x654680
inc word [esi + 0xdc]
jmp 0x654680
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0xb74]
mov eax, dword [eax + 0x474]
mov ecx, dword [esi + 0x2cc]
push edx
mov edx, dword [esi + 0x2c4]
push eax
push ecx
push edx
call fcn.006442f0
push 0x2000
push eax
xor eax, eax
mov ax, word [esi + 0xea]
push eax
call fcn.00643cb0
push esi
mov edi, eax
call fcn.0061e9d0
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
add esp, 0x20
test cl, cl
jne 0x653ecc
mov ecx, dword [0x91cfa8]
cmp byte [ecx + 0x64], 5
jne 0x653ecc
mov dl, byte [esi]
cmp dl, byte [eax + 0x1b]
jne 0x653ecc
call fcn.00865040
test eax, eax
je 0x653ecc
mov byte [esi + 0x130], 8
jmp 0x653f1b
cmp dword [0xeebb30], 1
jne 0x653f0a
xor eax, eax
mov ax, word [esi + 0x1c4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x653f0a
cmp dword [esi + 0x1c8], 0x19000
jae 0x653f0a
mov byte [esi + 0x130], 0
mov al, byte [esi + 0x2bc]
test al, al
je 0x653f1b
mov byte [esi + 0x130], 0
push 1
push edi
push esi
call fcn.00648830
add esp, 0xc
test eax, eax
je 0x653f3a
cmp dword [0xeebb30], 1
je 0x653f3a
inc byte [esi + 0x130]
cmp dword [esi + 0xe0], ebx
jne 0x654680
mov al, byte [esi + 0x130]
test al, al
jne 0x654680
mov eax, dword [0xeebb30]
dec eax
cmp eax, 9
ja case.0x653f5f.2
jmp dword [eax*4 + 0x654b1c]
mov byte [esi + 0xda], 0x33
mov word [esi + 0xdc], bx
jmp 0x654680
mov al, byte [esi]
cmp al, 1
mov byte [esi + 0x134], 1
je 0x653d80
cmp al, 0xc
je 0x653d80
cmp word [esi + 0x2dc], 0x130
je 0x6537b6
jmp 0x6537a7
fld dword [esi + 0x2c4]
call fcn.0043bd30
mov dword [ebp - 0xc], eax
mov byte [esi + 0xda], 0
mov word [esi + 0xdc], bx
jmp 0x654680
mov eax, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [eax + 0xe]
jne 0x653ff6
mov edx, dword [esi + 0xe0]
xor eax, eax
mov ax, word [esi + 0xea]
push ebx
add edx, 0x400
push edx
push eax
push esi
call fcn.00630a00
add esp, 0x10
jmp 0x653fff
cmp cl, byte [eax + 0x19]
jne 0x654004
mov byte [eax + 0x19], 0
mov eax, dword [0x91cfa4]
mov ecx, dword [esi + 0xe0]
cmp ecx, dword [esi + 0x11c]
jl 0x65404a
mov cl, byte [eax + 0xa5]
test cl, cl
je 0x65404a
push ebx
push 0x2d
push esi
call fcn.0061e910
push 8
push esi
call fcn.00655eb0
mov edx, dword [esi + 0xe0]
add esp, 0x14
mov dword [esi + 0xe4], edx
mov word [esi + 0xdc], 3
jmp 0x654680
movzx eax, word [esi + 0x2dc]
cmp eax, 0x14f
jg 0x6540d3
cmp eax, 0x14e
jge case.0x6540ef.337
cmp eax, 0x12e
jg 0x6540bc
je case.0x6540ef.337
cmp eax, 0x27
je 0x65409f
cmp eax, 0x45
je 0x65409f
cmp eax, 0x77
jne case.0x6540ef.339
push esi
call fcn.0061e9d0
push esi
call fcn.006758a0
push esi
mov word [esi + 0xdc], 0x10
call fcn.00643d80
add esp, 0xc
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov byte [esi + 0xda], 0x10
mov word [esi + 0xdc], bx
call fcn.006cb2c0
add esp, 4
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x130
jl case.0x6540ef.339
cmp eax, 0x131
jle case.0x6540ef.337
cmp eax, 0x146
je case.0x6540ef.337
jmp case.0x6540ef.339
cmp eax, 0x269
jg 0x6540f6
je case.0x6540ef.337
sub eax, 0x151
cmp eax, 0x97
ja case.0x6540ef.339
movzx eax, byte [eax + 0x654b4c]
jmp dword [eax*4 + 0x654b44]
cmp eax, 0x34f
je case.0x6540ef.337
cmp eax, 0x359
jle case.0x6540ef.339
cmp eax, 0x35b
jle case.0x6540ef.337
xor ecx, ecx
mov cx, word [esi + 0xec]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jae case.0x6540ef.337
cmp dword [esi + 0xe0], 0xe00
jl case.0x6540ef.337
cmp dword [0xeebb30], 7
jne 0x654169
push esi
call fcn.0061e9d0
add esp, 4
mov word [esi + 0xdc], 0x10
jmp 0x654680
xor eax, eax
mov ax, word [esi + 0xec]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe 0x654199
mov word [esi + 0xdc], 0x10
jmp 0x654680
push 8
call fcn.0063c860
add al, 0x1a
add esp, 4
cmp word [esi + 0x2dc], 0x262
mov byte [esi + 0x130], al
je 0x6541d3
mov edx, dword [esi + 0x2e4]
push edx
push 0x262
push esi
call fcn.006409b0
push 8
push esi
call fcn.00655eb0
add esp, 0x14
inc word [esi + 0xdc]
push esi
call fcn.0061e9d0
fld dword [esi + 0x2e4]
fcomp dword [0x8d2c40]
add esp, 4
fnstsw ax
test ah, 1
jne 0x654200
mov dword [esi + 0x2e4], 0x41a00000
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91cfa4]
xor eax, 1
mov al, byte [ecx + eax*2 + 0x1c]
cmp al, 0xff
je 0x654225
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x65422a
mov edx, 1
mov al, byte [esi + 0xe9]
imul edx, edx, 0x4c0
add edx, 0xd92230
test al, al
mov edi, edx
mov dword [ebp - 0xc], edi
je 0x6542bb
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6628]
shr edx, 0xb
and edx, 0x7f
push 0x32
push edx
call fcn.00614f40
add eax, 0x14
push eax
call fcn.0063c940
add esp, 0xc
test al, al
jne 0x6542bb
mov eax, dword [esi + 0x2cc]
mov ecx, dword [esi + 0x2c4]
xor edx, edx
mov dl, byte [esi + 0xd9]
xor dl, 1
push 1
push eax
push ecx
push edx
call fcn.0065a460
push ebx
push esi
push edi
call fcn.006c9f60
push esi
call fcn.00643d80
add esp, 0x20
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0xeebb30], 1
jne 0x6545d6
mov eax, dword [ebp - 4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
ja 0x654497
mov al, byte [esi + 0xe9]
test al, al
jne 0x654388
xor edi, edi
mov ebx, 1
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x100
jmp 0x654310
mov edx, dword [ebp - 0x14]
push 0
push 0x100
push edi
push edx
call fcn.0043d230
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add ebx, 0xffffffff
adc eax, 0xffffffff
mov ecx, ebx
or ecx, eax
mov edi, edx
mov dword [ebp - 0x18], eax
jne 0x654310
mov ebx, dword [ebp - 0xc]
fld dword [ebx + 0x2cc]
call fcn.0043bd30
fld dword [ebx + 0x2c4]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
xor ecx, ecx
add esp, 0x10
cmp ecx, edi
ja 0x654497
jb 0x654388
cmp eax, dword [ebp - 0x14]
jae 0x654497
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6628]
shr edx, 0xb
and edx, 0x7f
sub edx, 0x14
push edx
call fcn.0063c940
add esp, 4
test al, al
je 0x6543d0
push 0x14
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x654497
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x6543e1
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 5
jp 0x654497
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x654409
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8d2c9c]
fnstsw ax
test ah, 5
jp 0x654497
cmp dword [ebp - 8], 0x90000
jg 0x654497
mov eax, dword [esi + 0x2cc]
mov ecx, dword [esi + 0x2c4]
xor edx, edx
mov dl, byte [esi + 0xd9]
xor dl, 1
push 1
push eax
push ecx
push edx
call fcn.0065a460
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91cfa4]
xor eax, 1
mov al, byte [ecx + eax*2 + 0x20]
add esp, 0x10
cmp al, 0xff
je 0x65446e
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x654473
mov edx, 1
imul edx, edx, 0x4c0
push 0
add edx, 0xd92230
push esi
push edx
call fcn.006c9f60
push esi
call fcn.00643d80
add esp, 0x10
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0xeebb30], 1
jne 0x6545d6
mov edx, dword [0x91d3f0]
fld dword [edx + 0x434]
call fcn.0043bd30
test eax, eax
jg 0x6544bb
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x6545d6
fld dword [esi + 0x2d0]
fmul dword [0x884a10]
fadd dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x6544ef
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 0x41
je 0x6545d6
fld dword [esi + 0x2d8]
fmul dword [0x884a10]
fadd dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x654523
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb93c]
fnstsw ax
test ah, 0x41
je 0x6545d6
mov al, byte [esi + 0x130]
test al, al
jne 0x6545f9
mov eax, dword [0x91cfa4]
cmp word [eax + 0xc], 0xb
jl 0x6545f9
push 8
call fcn.0063c860
mov cl, byte [esi + 0x130]
add al, 0x10
add cl, al
push 0x14
mov byte [esi + 0x130], cl
call fcn.00678f20
movzx ecx, byte [esi + 0x124]
add esp, 8
cmp ecx, eax
jge 0x6545cd
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6630]
shr edx, 4
and edx, 0x7f
push 0x14
push edx
call fcn.00614f40
push eax
call fcn.0063c940
add esp, 0xc
test al, al
jne 0x6545f0
push 3
call fcn.0063c860
add esp, 4
test eax, eax
je 0x6545f0
inc word [esi + 0xdc]
jmp 0x6545f9
push 8
call fcn.0063c860
mov cl, byte [esi + 0x130]
add al, 0x10
add esp, 4
add cl, al
mov byte [esi + 0x130], cl
mov word [esi + 0xdc], 0x10
mov ax, word [esi + 0xea]
movzx edx, byte [esi + 0xd7]
movzx edi, byte [esi + 0x124]
mov word [esi + 0xec], ax
movzx eax, byte [esi + 0xd8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb662c]
shr ecx, 0x12
and ecx, 0x7f
push 0x32
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, edi
sub ecx, edx
mov eax, 0x1c0
sub eax, edi
add ecx, 0x16
lea edx, [eax + eax*2]
push ecx
shl edx, 2
push edx
push esi
call fcn.0063dd50
push 1
push esi
call fcn.006f8c10
add esp, 0x1c
test eax, eax
jne 0x653b83
xor ebx, ebx
mov eax, dword [0x91cfa4]
mov cl, byte [esi]
cmp cl, byte [eax + 0x19]
jne 0x654690
mov byte [eax + 0x19], 0
cmp byte [esi + 0xda], 0x18
jne 0x6548f5
cmp dword [0xeebb30], 1
jne 0x6548f5
mov ax, word [esi + 0x2dc]
cmp ax, 0x263
je 0x6548f5
cmp ax, 0x2d
je 0x6548f5
cmp word [esi + 0xdc], 7
je 0x6548f5
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x65472f
movzx edx, byte [esi + 0xd8]
cmp byte [edx + eax + 0x35], 1
jne 0x65472f
mov edi, dword [ebp - 4]
xor eax, eax
mov ax, word [esi + 0xea]
push edi
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x40
ja 0x654732
cmp dword [ebp - 8], 0x14400
jge 0x654732
mov ecx, dword [0x91cfa4]
cmp word [ecx + 0xc], 0xc
jl 0x654732
mov byte [esi + 0xda], 1
mov word [esi + 0xdc], bx
jmp 0x654732
mov edi, dword [ebp - 4]
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
jne 0x6547e1
cmp dword [0xeebb30], 1
jne 0x6547e1
push esi
call fcn.00639ef0
add esp, 4
test eax, eax
je 0x6547e1
mov al, byte [esi + 0x10d]
test al, al
jne 0x6547e1
mov eax, dword [0x91d3f0]
mov ax, word [eax + 0x8c]
cmp ax, 4
je 0x6547e1
cmp ax, 1
je 0x6547e1
cmp dword [esi + 0xe0], 0x800
jge 0x6547e1
mov ecx, dword [0x91cfa4]
cmp word [ecx + 0xc], 0x10
jl 0x6547e1
xor edx, edx
mov dx, word [esi + 0xea]
push edi
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x3c
ja 0x6547e1
cmp word [esi + 0x2dc], 0x262
jne 0x6547d3
fld dword [esi + 0x2e4]
fcomp dword [0x8d2c40]
fnstsw ax
test ah, 5
jp 0x6547e1
mov byte [esi + 0xda], 1
mov word [esi + 0xdc], bx
mov al, byte [esi + 0x130]
test al, al
jne 0x6548f5
mov eax, dword [0x91d3f0]
cmp word [eax + 0x8c], 0xb
jne 0x6548f5
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0xe0]
shl ecx, 2
mov edx, 0x1100
sub edx, ecx
cmp eax, edx
jge 0x6548f5
cmp dword [0xeebb30], 1
jne 0x6548f5
mov eax, dword [0x91cfa4]
cmp word [eax + 0xc], 0x12
jl 0x6548f5
xor ecx, ecx
mov cx, word [esi + 0xea]
push edi
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x38
ja 0x6548f5
cmp dword [ebp - 8], 0x40000
jge 0x6548f5
movzx eax, byte [esi + 0x124]
mov ecx, dword [esi + 0xe0]
lea edx, [eax + eax*2]
shl edx, 2
mov eax, 0x1100
sub eax, edx
cmp ecx, eax
jge 0x6548aa
mov al, byte [esi + 0x10d]
test al, al
jne 0x6548f5
mov byte [esi + 0xda], 0x1b
mov word [esi + 0xdc], bx
mov byte [esi + 0x10f], 0xff
jmp 0x6548f5
mov ax, word [esi + 0xdc]
cmp ax, 2
je 0x6548f5
cmp ax, 3
je 0x6548f5
push ebx
push esi
call fcn.00677850
add esp, 8
test eax, eax
je 0x6548da
push ebx
push 0x130
push esi
call fcn.0061e910
add esp, 0xc
push 8
call fcn.0063c860
add esp, 4
add al, 0x10
mov byte [esi + 0x130], al
mov word [esi + 0xdc], 2
mov al, byte [esi + 0xe9]
test al, al
je 0x654a2a
cmp dword [esi + 0xe0], 0xc00
jl 0x654a2a
push 4
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x654a2a
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6628]
shr ecx, 0xb
and ecx, 0x7f
sub ecx, 0x14
push ecx
call fcn.0063c940
add esp, 4
test al, al
je 0x65496d
push 0x14
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x654a2a
cmp dword [0xeebb30], 1
jne 0x654a2a
fld dword [esi + 0x2c4]
call fcn.0043bd30
cmp eax, ebx
jg 0x65498b
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8cb938]
fnstsw ax
test ah, 5
jp 0x654a2a
fld dword [esi + 0x2cc]
call fcn.0043bd30
cmp eax, ebx
jg 0x6549b3
neg eax
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fcomp dword [0x8d2c9c]
fnstsw ax
test ah, 5
jp 0x654a2a
mov edx, dword [esi + 0x2cc]
mov eax, dword [esi + 0x2c4]
xor ecx, ecx
mov cl, byte [esi + 0xd9]
xor cl, 1
push 1
push edx
push eax
push ecx
call fcn.0065a460
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
xor edx, 1
mov al, byte [eax + edx*2 + 0x20]
add esp, 0x10
cmp al, 0xff
je 0x654a0e
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x654a13
mov edx, 1
imul edx, edx, 0x4c0
push ebx
add edx, 0xd92230
push esi
push edx
call fcn.006c9f60
add esp, 0xc
push esi
call fcn.00678b40
push esi
mov byte [esi + 0x134], 3
call fcn.00639ef0
add esp, 8
test eax, eax
je 0x654a53
push esi
call fcn.00681dc0
push esi
call fcn.00650860
add esp, 8
mov dx, word [esi + 0xec]
push esi
mov word [esi + 0x108], dx
call fcn.00643d80
push esi
call fcn.0067dbf0
add esp, 8
pop edi
pop ebx
mov esp, ebp
pop ebp
ret