Function at 0x1000cd50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
mov eax, dword [0x4881810]
xor eax, esp
mov dword [esp + 0x70], eax
or eax, 0xffffffff
mov dword [esp + 0x24], 0
mov dword [esp + 0x58], eax
or eax, eax
mov dword [esp + 0x3c], eax
or eax, 0xffffffff
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x48], eax
or eax, eax
push esi
xor esi, esi
mov dword [esp + 0x5c], eax
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
push 0x4882090
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], 1
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], eax
call fcn.10033b90
add esp, 4
call fcn.100158e0
cmp ebx, 1
jne 0x1000d037
push 0x4882098
push 0x48820a0
call fcn.100350b0
push 0x48820c0
call fcn.100350b0
push dword [edi]
push 0x48820f0
call fcn.100350b0
push 0x488211c
push 0x4882148
call fcn.100350b0
push 0x4882170
push 0x48821a0
call fcn.100350b0
push 0x48821a4
push 0x48821d0
call fcn.100350b0
push 0x48821d4
push 0x4882204
call fcn.100350b0
push 0x4882208
push 0x4882234
call fcn.100350b0
push 0x4882238
push 0x4882270
call fcn.100350b0
add esp, 0x44
push 0x488227c
push 0x48822ac
call fcn.100350b0
push 0x48822c0
push 0x4882304
call fcn.100350b0
push 0x4882308
push 0x4882344
call fcn.100350b0
push 0x4882350
push 0x4882378
call fcn.100350b0
push 0x488237c
push 0x48823b0
call fcn.100350b0
push 0x48823b4
push 0x48823dc
call fcn.100350b0
push 0x48823e0
push 0x4882414
call fcn.100350b0
push 0x4882418
push 0x488245c
call fcn.100350b0
add esp, 0x40
push 0x4882468
push 0x488249c
call fcn.100350b0
push 0x48824a0
push 0x48824c4
call fcn.100350b0
push 0x48824c8
push 0x48824f8
call fcn.100350b0
push 0x4882508
push 0x4882504
call fcn.100350b0
push 0x488254c
push 0x4882584
call fcn.100350b0
push 0x4882588
push 0x48825d0
call fcn.100350b0
push 0x48825d8
push 0x4882610
call fcn.100350b0
push 0x4882620
push 0x4882658
call fcn.100350b0
add esp, 0x40
push 0x4882660
push 0x48826a8
call fcn.100350b0
push 0x48826b0
push 0x48826e4
call fcn.100350b0
push 0x488278c
push 0x48827b8
call fcn.100350b0
push 0x48827c4
push 0x4882804
call fcn.100350b0
push 0x4882810
push 0x4882854
call fcn.100350b0
push 0x4882860
push 0x48828a8
call fcn.100350b0
push 0x48828b8
push 0x48828f0
call fcn.100350b0
push 0x4882900
push 0x4882934
call fcn.100350b0
add esp, 0x40
push 0x4882944
push 0x488298c
call fcn.100350b0
push 0x488299c
push 0x48829d0
call fcn.100350b0
push 0x48829f0
push 0x4882a34
call fcn.100350b0
push 0x4882a4c
push 0x4882a78
call fcn.100350b0
push 0x4886302
push 0x4882a94
call fcn.100350b0
add esp, 0x28
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret
mov dword [edi + ebx*4], 0x4886303
mov ebx, 1
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], ebx
mov al, byte [eax]
mov byte [esp + 0x2b], al
movsx eax, al
sub eax, 2
or eax, 2
cmp eax, 0x2b
jne 0x1000d4ae
mov eax, dword [edi + ebx*4]
inc ebx
mov dword [esp + 0x1c], ebx
mov al, byte [eax + 1]
mov byte [esp + 0x18], al
movsx eax, al
push eax
push 0x4882af4
mov dword [esp + 0x28], eax
call fcn.10035770
add esp, 8
test eax, eax
je 0x1000d0e0
sub eax, 0x4882af4
xor edi, edi
mov dword [esp + 0x2c], eax
movsx eax, byte [eax + 0x4882b38]
sub eax, 0x30
test eax, eax
jle 0x1000d0dc
mov eax, dword [esp + 0x34]
lea esi, [eax + ebx*4]
lea ebx, [ebx]
mov eax, dword [esi]
movsx eax, byte [eax]
push eax
call fcn.10034f80
add esp, 4
test eax, eax
je 0x1000d4f0
mov eax, dword [esp + 0x2c]
inc edi
add esi, 4
movsx eax, byte [eax + 0x4882b38]
sub eax, 0x30
cmp edi, eax
jl 0x1000d0b0
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
add eax, 0xffffffcc
cmp eax, 0x46
ja 0x1000d51f
movzx eax, byte [eax + 0x484dbbc]
jmp dword [eax*4 + 0x484db2c]
mov eax, dword [0x494aac0]
mov edi, dword [esp + 0x58]
fld qword [eax + 0x768]
fstp qword [0x48847e8]
cmp ebx, edi
jne 0x1000d52c
push 0x4882e04
push 0x3ea
call fcn.100341f0
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret
movsx eax, byte [esp + 0x18]
push eax
push 0x4882b80
push 0x3ea
call fcn.100341f0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret
movsx eax, byte [esp + 0x18]
push eax
push 0x4882dd8
jmp 0x1000d4fb
cmp dword [esp + 0x40], 0
je 0x1000d577
push 1
call fcn.10033b90
add esp, 4
test eax, eax
je 0x1000d555
push 0x4882e24
push 0x3ea
call fcn.100341f0
add esp, 8
jmp 0x1000d508
push 0x8000
push 1
call fcn.10033b90
add esp, 8
test eax, eax
jns 0x1000d577
push 0x4882e5c
call fcn.10035070
add esp, 4
jmp 0x1000d508
cmp ebx, edi
jge 0x1000e715
nop
xor edi, edi
mov dword [esp + 0x30], 1
push 0x494ae60
mov dword [0x498d070], 0
mov dword [0x498d06c], 0
mov dword [0x498d164], 0
mov dword [0x498d544], edi
mov dword [0x498d550], 0x3e9
call fcn.10033b90
add esp, 4
test eax, eax
je 0x1000d618
push dword [0x498d554]
call fcn.10033fa0
add esp, 4
cmp eax, 2
jle 0x1000d5ea
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
push dword [0x498d550]
call fcn.10033fa0
add esp, 4
cmp eax, 2
jle 0x1000d60b
push dword [0x498d550]
call fcn.10033ce0
add esp, 4
mov dword [esp + 0x30], 1
jmp 0x1000e58d
mov eax, dword [esp + 0x34]
push 0x4882e90
mov eax, dword [eax + ebx*4]
push eax
mov dword [0x498d548], eax
call fcn.10034020
add esp, 8
mov dword [0x498d554], eax
test eax, eax
jne 0x1000d64e
push dword [0x498d548]
call fcn.10035070
add esp, 4
jmp 0x1000e702
call fcn.100105b0
mov ecx, dword [0x498d134]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
test eax, eax
js 0x1000d671
mov dword [0x498d098], eax
mov eax, dword [0x498d098]
xor edx, edx
add eax, 0xe10
mov edi, 0x168
div edi
sub edx, 0x5a
je 0x1000d6ab
sub edx, 0x5a
je 0x1000d69f
sub edx, 0x5a
jne 0x1000d6b5
mov dword [0x498d098], 5
jmp 0x1000d6b5
mov dword [0x498d098], 3
jmp 0x1000d6b5
mov dword [0x498d098], 6
cmp dword [esp + 0x44], 0
je 0x1000d78c
mov ecx, dword [0x498d1a0]
mov eax, ecx
mov edx, dword [0x498d1a4]
or eax, edx
jne 0x1000d705
push dword [0x498d548]
mov dword [esp + 0x34], 1
push 0x4882ec4
push 0x3ea
call fcn.100341f0
add esp, 0xc
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
jmp 0x1000e702
mov dword [esp + 0x30], 0
test esi, esi
je 0x1000d728
push dword [0x498d548]
push dword [0x498d184]
push ecx
push 0x4882ef8
jmp 0x1000df90
cmp dword [0x48864e4], 0
je 0x1000d756
push ecx
push dword [0x498d548]
push 0x4882f1c
push 0x3ea
call fcn.100341f0
mov edx, dword [0x498d1a4]
add esp, 0x10
mov ecx, dword [0x498d1a0]
lea eax, [esp + 0x68]
mov dword [esp + 0x70], ecx
push eax
push dword [0x498d548]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
call fcn.10033b90
add esp, 8
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
jmp 0x1000e702
cmp dword [esp + 0x3c], 0
mov dword [0x494ae98], 0x4875380
je 0x1000d84d
mov ecx, dword [0x498d190]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x30], eax
test eax, eax
je 0x1000d7e1
push dword [0x498d548]
push 0x4882f44
push 0x3ea
call fcn.100341f0
add esp, 0xc
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
jmp 0x1000e702
mov eax, dword [0x494ae90]
test eax, eax
je 0x1000d82d
mov si, word [0x498d074]
mov di, word [0x498d076]
mov dword [0x498d194], ecx
mov ecx, dword [0x498d134]
mov dword [0x494ae94], eax
mov word [0x498d086], si
mov word [0x498d084], di
mov dword [0x498d090], 0
mov dword [0x498d08c], 3
jmp 0x1000d860
push 0
push ecx
push dword [0x498d554]
call fcn.10034c80
mov eax, dword [0x494ae9c]
add esp, 0xc
mov dword [0x494ae98], eax
jmp 0x1000e496
mov eax, dword [0x494ae94]
mov si, word [0x498d086]
mov di, word [0x498d084]
cmp eax, 0x4856880
jne 0x1000d889
mov ax, si
and ax, 1
add si, ax
mov ax, di
and ax, 1
mov word [0x498d086], si
add di, ax
mov word [0x498d084], di
mov eax, dword [0x498d12c]
neg eax
sbb eax, eax
not eax
and eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [0x498d134], eax
test ecx, ecx
je 0x1000da9f
cmp dword [0x48864e4], 0
je 0x1000da9f
cmp byte [0x498d280], 0
je 0x1000da9f
push dword [0x498d548]
push 0x4882f68
call fcn.100350b0
push 0x498d1a0
call fcn.10033870
push eax
push 0x4882f80
call fcn.100350b0
push 0x498d240
push 0x498d280
push 0x4882f90
call fcn.100350b0
add esp, 0x20
cmp byte [0x498d1c0], 0
je 0x1000d918
push 0x498d1c0
push 0x4882fa0
call fcn.100350b0
add esp, 8
cmp dword [0x498d130], 0
je 0x1000d961
push 0x4882fb4
call fcn.100350b0
add esp, 4
mov esi, 0x18
mov eax, esi
mov ecx, esi
neg eax
sbb eax, eax
and eax, 0x24
add eax, 0xa
push eax
mov eax, dword [0x498d130]
shr eax, cl
and eax, 0xff
push eax
push 0x4882fc8
call fcn.100350b0
add esp, 0xc
sub esi, 8
jns 0x1000d933
fld dword [0x498d1b4]
call 0x10039a60
push eax
push 0x4882fdc
call fcn.100350b0
push 0x4882ff8
call fcn.100350b0
fld dword [0x498d1b0]
add esp, 0xc
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x1000d9c5
fld1
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x1000d9c5
push 0x4883010
fstp st(0)
call fcn.100350b0
fld dword [0x498d1b0]
add esp, 4
fld1
fdivrp st(1)
fstp dword [0x498d1b0]
fld dword [0x498d1b0]
sub esp, 8
fstp qword [esp]
push 0x488301c
call fcn.100350b0
fld dword [0x498d1ac]
add esp, 4
fstp qword [esp]
push 0x4883030
call fcn.100350b0
fld dword [0x498d1a8]
add esp, 4
fstp qword [esp]
push 0x4883044
call fcn.100350b0
add esp, 0xc
mov eax, 0x4883070
cmp dword [0x498d16c], 0
jne 0x1000da17
mov eax, 0x4883074
push eax
push 0x4883080
call fcn.100350b0
push dword [0x498d134]
push 0x488309c
call fcn.100350b0
fld qword [0x496afc0]
add esp, 0x10
fld1
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1000da5b
sub esp, 8
fstp qword [esp]
push 0x48830c8
call fcn.100350b0
add esp, 0xc
jmp 0x1000da5d
fstp st(0)
cmp dword [0x498d190], 0
je 0x1000da83
movzx eax, word [0x498d074]
push eax
movzx eax, word [0x498d076]
push eax
push 0x48830ec
call fcn.100350b0
add esp, 0xc
movzx eax, word [0x498d08a]
push eax
movzx eax, word [0x498d088]
push eax
push 0x4883104
call fcn.100350b0
jmp 0x1000dab8
test eax, eax
jne 0x1000dada
push dword [0x498d548]
push 0x4883134
push 0x3ea
call fcn.100341f0
add esp, 0xc
cmp dword [0x498d134], 0
je 0x1000df98
mov si, word [0x498d086]
mov di, word [0x498d084]
mov ecx, dword [esp + 0x14]
cmp dword [0x498d090], 0
je 0x1000db31
cmp dword [0x48864d4], 0
jne 0x1000db28
test ecx, ecx
jne 0x1000db31
fld dword [0x48864d0]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x1000db28
fld qword [0x48847a8]
fld1
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x1000db2a
fld qword [0x48847b8]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1000db33
lea eax, [ecx + 1]
jmp 0x1000db35
fld1
mov eax, 1
jmp 0x1000db35
fld1
xor eax, eax
movzx ecx, ax
mov word [0x498d07e], ax
movzx edx, si
movzx eax, di
add edx, ecx
add eax, ecx
sar edx, cl
sar eax, cl
cmp dword [esp + 0x14], 0
mov word [0x498d07c], dx
mov word [0x498d07a], ax
je 0x1000dfab
cmp dword [0x48864e4], 0
je 0x1000df79
cmp dword [0x48864dc], 3
jne 0x1000dbb0
mov si, word [0x498d08a]
xor eax, eax
mov di, word [0x498d088]
mov dword [esp + 0x2c], eax
mov word [0x498d078], ax
mov word [0x498d080], ax
mov word [0x498d082], ax
mov word [0x498d086], si
mov word [0x498d084], di
jmp 0x1000dbbb
movzx eax, word [0x498d078]
mov dword [esp + 0x2c], eax
movzx edx, si
movzx eax, di
add edx, ecx
add eax, ecx
sar edx, cl
sar eax, cl
cmp dword [esp + 0x38], 0
mov word [0x498d07c], dx
mov dword [esp + 0x18], eax
mov word [0x498d07a], ax
je 0x1000ddbf
mov eax, dword [esp + 0x2c]
test ax, ax
je 0x1000dcca
movzx eax, ax
fstp st(0)
dec eax
sub esp, 8
add eax, ecx
sar eax, cl
mov word [0x498d078], ax
movzx eax, ax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [0x48791e8]
fstp qword [esp]
call fcn.10007d30
fdivr qword [esp + 0x28]
movzx ecx, word [0x498d07c]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x28], eax
fldcw word [esp + 0x28]
fistp dword [esp + 0x28]
movzx eax, word [esp + 0x28]
mov word [0x498d07a], ax
movzx eax, word [0x498d078]
fldcw word [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [0x48791e8]
fstp qword [esp]
call fcn.10007d30
fdivr qword [esp + 0x28]
add esp, 8
mov si, word [0x498d086]
mov di, word [0x498d084]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
movzx eax, word [esp + 0x20]
mov dx, ax
mov ax, word [0x498d07a]
mov word [0x498d07c], dx
fldcw word [esp + 0x18]
mov dword [esp + 0x18], eax
jmp 0x1000ddc1
fld qword [0x496afc0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x1000dd45
fstp st(0)
movzx eax, dx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fnstcw word [esp + 0x18]
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
fld qword [0x496afc0]
fdiv st(1), st(0)
movzx eax, word [esp + 0x18]
or eax, 0xc00
movzx ecx, word [0x498d07a]
mov si, word [0x498d086]
mov di, word [0x498d084]
mov dword [esp + 0x20], eax
fld qword [0x48791e8]
fadd st(2), st(0)
fxch st(2)
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov dx, word [esp + 0x20]
mov word [0x498d07c], dx
fldcw word [esp + 0x18]
mov dword [esp + 0x18], ecx
jmp 0x1000dd51
fld qword [0x48791e8]
fxch st(1)
mov ecx, dword [esp + 0x18]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x1000ddbb
movzx eax, cx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fnstcw word [esp + 0x18]
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
fmul qword [0x496afc0]
movzx eax, word [esp + 0x18]
mov si, word [0x498d086]
or eax, 0xc00
mov di, word [0x498d084]
mov dx, word [0x498d07c]
mov dword [esp + 0x20], eax
faddp st(1)
fldcw word [esp + 0x20]
fistp dword [esp + 0x20]
mov ax, word [esp + 0x20]
mov word [0x498d07a], ax
fldcw word [esp + 0x18]
mov dword [esp + 0x18], eax
jmp 0x1000ddc1
mov eax, dword [esp + 0x18]
fstp st(0)
test byte [0x498d098], 4
je 0x1000dde7
mov ecx, dword [esp + 0x18]
add dx, ax
mov ax, dx
sub ax, cx
sub dx, ax
mov word [0x498d07a], ax
mov word [0x498d07c], dx
movzx eax, si
push eax
movzx eax, di
push eax
push 0x48831c0
call fcn.100350b0
movzx eax, word [0x498d07c]
push eax
movzx eax, word [0x498d07a]
push eax
push 0x48831e8
call fcn.100350b0
push dword [0x498d08c]
push 0x4883210
call fcn.100350b0
mov edx, dword [0x498d090]
add esp, 0x20
test edx, edx
je 0x1000dedc
mov esi, 2
movzx ecx, dl
movzx eax, dh
mov ebx, esi
xor ecx, eax
mov dword [esp + 0x18], esi
je 0x1000de52
mov esi, 4
mov dword [esp + 0x18], esi
movzx eax, word [0x498d092]
movzx ecx, dx
xor ecx, eax
je 0x1000de69
mov esi, 8
mov dword [esp + 0x18], esi
cmp edx, 1
jne 0x1000de73
lea ebx, [edx + 0xf]
jmp 0x1000de7d
cmp edx, 9
jne 0x1000de83
mov ebx, 6
mov esi, ebx
mov dword [esp + 0x18], esi
push 0x48832cc
call fcn.100350b0
add esp, 4
xor edi, edi
test esi, esi
jle 0x1000ded8
test edi, edi
je 0x1000dea9
push 0x2f
push 0x4883360
call fcn.100350b0
add esp, 8
xor esi, esi
test ebx, ebx
jle 0x1000ded1
nop
push esi
push edi
call fcn.1000e9a0
movsx eax, byte [eax + 0x498d4c0]
push eax
push 0x4883374
call fcn.100350b0
inc esi
add esp, 0x10
cmp esi, ebx
jl 0x1000deb0
inc edi
cmp edi, dword [esp + 0x18]
jl 0x1000de96
mov ebx, dword [esp + 0x1c]
push 0x4883394
call fcn.100350b0
xor esi, esi
add esp, 4
cmp dword [0x498d08c], esi
jbe 0x1000df16
fld dword [esi*4 + 0x496af10]
sub esp, 8
fstp qword [esp]
push 0x4883414
call fcn.100350b0
inc esi
add esp, 0xc
cmp esi, dword [0x498d08c]
jb 0x1000def3
fldz
fcomp dword [0x496af20]
fnstsw ax
test ah, 5
jp 0x1000df57
push 0x4883440
call fcn.100350b0
add esp, 4
mov esi, 0x496af20
fld dword [esi]
sub esp, 8
fstp qword [esp]
push 0x4883498
call fcn.100350b0
add esi, 4
add esp, 0xc
cmp esi, 0x496af30
jl 0x1000df37
push 0xa
push 0x48834ac
call fcn.100350b0
add esp, 8
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
jmp 0x1000e702
push 0x498d240
push 0x498d280
push dword [0x498d548]
fstp st(0)
push 0x48834d0
call fcn.100350b0
add esp, 0x10
push dword [0x498d554]
call fcn.10033ce0
add esp, 4
jmp 0x1000e702
mov ecx, dword [0x498d170]
fstp st(0)
test ecx, ecx
je 0x1000dfdd
push ecx
call fcn.100377a0
push 0x4883528
push eax
mov dword [0x498d544], eax
call fcn.10018fd0
mov dx, word [0x498d07c]
add esp, 0xc
mov ax, word [0x498d07a]
cmp dword [0x498d090], 0
jne 0x1000e00b
cmp dword [0x498d08c], 1
je 0x1000e00b
movzx eax, ax
shl eax, 3
push eax
movzx eax, dx
push eax
call fcn.100376e0
mov dword [0x498d06c], eax
push 0x48835d0
jmp 0x1000e02f
movzx eax, word [0x498d088]
add eax, eax
push eax
movzx eax, word [0x498d08a]
add eax, 7
push eax
call fcn.100376e0
mov dword [0x498d070], eax
push 0x488357c
push eax
call fcn.10018fd0
add esp, 0x10
cmp dword [0x48864e4], 0
je 0x1000e063
push dword [0x498d548]
push 0x498d240
push 0x498d280
push 0x4883618
push 0x3ea
call fcn.100341f0
add esp, 0x14
mov eax, dword [0x48864b8]
cmp eax, dword [0x498d134]
jb 0x1000e089
push eax
push dword [0x498d548]
push 0x488367c
push 0x3ea
call fcn.100341f0
add esp, 0x10
push 0
push dword [0x498d194]
push dword [0x498d554]
call fcn.10034c80
mov edx, dword [0x498d070]
add esp, 0xc
test edx, edx
je 0x1000e0d4
cmp dword [esp + 0x4c], 0
je 0x1000e0d4
movzx ecx, word [0x498d088]
movzx eax, word [0x498d08a]
imul ecx, eax
push 0x3e8
push ecx
push 2
push edx
call fcn.10034540
add esp, 0x10
jmp 0x1000e0da
call dword [0x494ae94]
cmp dword [0x48864dc], 3
jne 0x1000e113
mov si, word [0x498d088]
xor eax, eax
mov word [0x498d078], ax
mov word [0x498d080], ax
mov word [0x498d082], ax
mov ax, word [0x498d08a]
mov word [0x498d086], ax
mov word [0x498d084], si
jmp 0x1000e120
mov ax, word [0x498d086]
mov si, word [0x498d084]
movzx ecx, word [0x498d07e]
movzx edx, ax
movzx eax, si
add edx, ecx
add eax, ecx
sar edx, cl
sar eax, cl
cmp dword [0x498d070], 0
mov word [0x498d07c], dx
mov word [0x498d07a], ax
je 0x1000e17e
movzx eax, ax
shl eax, 3
push eax
movzx eax, dx
push eax
call fcn.100376e0
push 0x4883748
push eax
mov dword [0x498d06c], eax
call fcn.10018fd0
call fcn.1000c100
push dword [0x498d070]
call fcn.10037780
add esp, 0x14
cmp dword [0x498d13c], 0
je 0x1000e18c
call fcn.10027f70
push dword [esp + 0x5c]
call fcn.10009650
mov eax, dword [esp + 0x58]
add esp, 4
test eax, eax
je 0x1000e1a9
push eax
call fcn.1002bac0
add esp, 4
mov eax, dword [esp + 0x64]
xor ecx, ecx
cmp word [0x498d078], cx
sete cl
add ecx, 2
mov dword [esp + 0x2c], ecx
test eax, eax
js 0x1000e1c8
mov dword [esp + 0x2c], eax
mov si, word [0x498b066]
mov di, word [0x498b060]
movzx eax, si
movzx ecx, di
cmp eax, ecx
jle 0x1000e1e2
mov eax, ecx
mov dx, word [0x498b062]
movzx ecx, dx
cmp eax, ecx
jle 0x1000e1f2
mov eax, ecx
mov cx, word [0x498b064]
movzx ebx, cx
cmp eax, ebx
mov ebx, dword [esp + 0x1c]
jle 0x1000e207
movzx eax, cx
sub di, ax
sub dx, ax
mov word [0x498b060], di
sub cx, ax
mov edi, dword [0x498d14c]
sub si, ax
mov word [0x498b062], dx
add edi, eax
movzx edx, word [0x498b068]
movzx eax, word [0x498b06a]
imul edx, eax
mov word [0x498b064], cx
xor ecx, ecx
mov word [0x498b066], si
movzx esi, word [0x498b06c]
mov dword [esp + 0x20], edx
test edx, edx
jle 0x1000e273
lea esp, [esp]
movzx eax, word [ecx*2 + 0x498b06c]
cmp esi, eax
jle 0x1000e26e
mov esi, eax
inc ecx
cmp ecx, edx
jl 0x1000e260
xor edx, edx
cmp dword [esp + 0x20], edx
jle 0x1000e29e
jmp 0x1000e280
sub word [edx*2 + 0x498b06c], si
inc edx
movzx ecx, word [0x498b068]
movzx eax, word [0x498b06a]
imul ecx, eax
cmp edx, ecx
jl 0x1000e280
mov eax, dword [esp + 0x48]
add edi, esi
mov dword [0x498d14c], edi
test eax, eax
js 0x1000e2b6
mov edi, eax
mov dword [0x498d14c], edi
add word [0x498b060], di
add word [0x498b062], di
add word [0x498b064], di
add word [0x498b066], di
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x1000e2df
mov dword [0x498d148], eax
cmp dword [0x498d12c], 0
je 0x1000e357
cmp dword [0x48864dc], 0
jne 0x1000e304
cmp dword [0x494ae94], 0x4872e70
je 0x1000e304
call fcn.10033a70
jmp 0x1000e365
mov si, word [0x498d084]
xor edx, edx
mov di, word [0x498d086]
movzx ecx, si
movzx eax, di
imul ecx, eax
shl ecx, 2
test ecx, ecx
jle 0x1000e365
mov eax, dword [0x498d06c]
cmp word [eax + edx*2], 0
jge 0x1000e344
xor ecx, ecx
mov word [eax + edx*2], cx
mov di, word [0x498d086]
mov si, word [0x498d084]
movzx ecx, si
inc edx
movzx eax, di
imul ecx, eax
shl ecx, 2
cmp edx, ecx
jl 0x1000e324
jmp 0x1000e365
cmp dword [0x48864dc], 2
jge 0x1000e365
call fcn.10029580
call fcn.10026bf0
mov ecx, dword [0x498d090]
test ecx, ecx
je 0x1000e3d1
cmp dword [0x48864dc], 0
jne 0x1000e3d1
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1000e38c
call fcn.100316a0
jmp 0x1000e3d1
cmp eax, 1
je 0x1000e3cc
cmp dword [0x498d08c], 3
ja 0x1000e3cc
cmp eax, 2
jne 0x1000e3ae
cmp ecx, 0x3e8
jbe 0x1000e3ae
call fcn.100264a0
jmp 0x1000e3d1
cmp ecx, 9
jne 0x1000e3c5
lea eax, [eax*2 - 3]
push eax
call fcn.1002e110
add esp, 4
jmp 0x1000e3d1
call fcn.100081b0
jmp 0x1000e3d1
call fcn.10032650
cmp dword [0x498d144], 0
je 0x1000e42f
movzx ecx, word [0x498d084]
xor esi, esi
movzx eax, word [0x498d086]
imul ecx, eax
mov dword [0x498d08c], 3
test ecx, ecx
jle 0x1000e42f
jmp 0x1000e400
mov edx, dword [0x498d06c]
movzx eax, word [edx + esi*8 + 2]
movzx ecx, word [edx + esi*8 + 6]
add ecx, eax
sar ecx, 1
mov word [edx + esi*8 + 2], cx
inc esi
movzx ecx, word [0x498d084]
movzx eax, word [0x498d086]
imul ecx, eax
cmp esi, ecx
jl 0x1000e400
cmp dword [0x498d12c], 0
jne 0x1000e476
cmp dword [0x498d08c], 3
jne 0x1000e44f
call fcn.10018d90
cmp dword [0x498d12c], 0
jne 0x1000e476
mov eax, dword [0x48864e0]
cmp eax, 2
jne 0x1000e46f
call fcn.10009b00
cmp dword [0x498d12c], 0
jne 0x1000e476
mov eax, dword [0x48864e0]
cmp eax, 2
jle 0x1000e476
call fcn.10027660
mov esi, dword [esp + 0x38]
test esi, esi
je 0x1000e483
call fcn.1000ef50
call fcn.10031620
test esi, esi
je 0x1000e491
call fcn.1002b630
mov eax, dword [0x494ae98]
cmp eax, 0x4854df0
jne 0x1000e4a4
mov eax, 0x4883d10
jmp 0x1000e4c9
cmp dword [0x48864f0], 0
je 0x1000e4bb
cmp eax, 0x4875380
jne 0x1000e4bb
mov eax, 0x4883d4c
jmp 0x1000e4c9
mov eax, dword [0x498d08c]
lea eax, [eax + eax*4]
lea eax, [eax + 0x4883d6b]
mov ecx, dword [0x498d548]
mov dword [esp + 0x1c], eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000e4d6
sub ecx, edx
lea eax, [ecx + 0x40]
push eax
call fcn.100377a0
mov edi, eax
add esp, 4
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x1000e51e
push 0x4883dc4
push dword [0x498d548]
push 0x4885094
push 0x3ea
call fcn.100341f0
push 1
push 0x494ae60
call fcn.10034ff0
add esp, 0x18
cmp dword [esp + 0x40], 0
je 0x1000e5fa
mov eax, dword [0x4883e08]
mov dword [edi], eax
mov eax, dword [0x4883e0c]
mov dword [edi + 4], eax
mov eax, dword [0x4883e10]
mov dword [edi + 8], eax
mov eax, dword [0x4883e14]
mov dword [edi + 0xc], eax
cmp dword [0x48864e4], 0
je 0x1000e564
push edi
push 0x4883ef8
push 0x3ea
call fcn.100341f0
add esp, 0xc
call dword [0x494ae98]
push dword [0x498d554]
call fcn.10033ce0
mov eax, dword [0x498d550]
add esp, 4
cmp eax, 0x3e9
je 0x1000e58d
push eax
call fcn.10033ce0
add esp, 4
mov eax, dword [0x498d544]
test eax, eax
je 0x1000e59f
push eax
call fcn.10037780
add esp, 4
test edi, edi
je 0x1000e5ac
push edi
call fcn.10037780
add esp, 4
mov eax, dword [0x498d164]
test eax, eax
je 0x1000e5be
push eax
call fcn.10037780
add esp, 4
mov eax, dword [0x498d06c]
test eax, eax
je 0x1000e5d0
push eax
call fcn.10037780
add esp, 4
cmp dword [0x48864bc], 0
je 0x1000e702
mov eax, dword [0x48864b8]
inc eax
mov dword [0x48864b8], eax
cmp eax, dword [0x498d134]
jae 0x1000e6f8
dec ebx
jmp 0x1000e702
mov ecx, dword [0x498d548]
mov edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x1000e602
push 0x2e
push edi
call fcn.10003e2f
add esp, 8
test eax, eax
je 0x1000e622
mov byte [eax], 0
cmp dword [0x48864bc], 0
je 0x1000e669
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x1000e630
push dword [0x48864b8]
mov eax, dword [0x498d134]
sub esi, ecx
dec eax
push eax
push 0x4883e64
push 0
push 0
call fcn.10035570
add esp, 0x10
push eax
lea eax, [esi + edi]
push 0x4883e78
push eax
call 0x10039040
add esp, 0x10
cmp dword [esp + 0x3c], 0
je 0x1000e69b
mov edx, 0x4883ea0
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x1000e677
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000e681
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x1000e6a1
sub edx, esi
dec edi
jmp 0x1000e6b0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1000e6b0
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x2c]
push 0x4883eb4
push edi
call fcn.10034020
add esp, 8
mov dword [0x498d550], eax
test eax, eax
jne 0x1000e548
push edi
mov dword [esp + 0x34], 1
call fcn.10035070
jmp 0x1000e58a
mov dword [0x48864b8], 0
mov esi, dword [esp + 0x14]
inc ebx
mov dword [esp + 0x1c], ebx
cmp ebx, dword [esp + 0x58]
jl 0x1000d580
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10007d50
mov esp, ebp
pop ebp
ret