Function at 0x10c23540
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10e28481
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9e0
mov eax, dword [0x10f80b60]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x9d8], eax
mov eax, dword [ecx + 4]
movsx edx, word [eax + 0x30]
push ebx
movsx ebx, word [eax + 0x2e]
mov byte [0x112363d0], 0
movsx eax, word [ecx + 0x238a]
sub eax, 0x1f
push esi
push edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x4c], ebx
je 0x10c235a5
dec eax
jne 0x10c235b2
mov byte [0x112363d0], 1
jmp 0x10c235b2
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x38], eax
mov edx, eax
mov ax, word [ecx + 0x246a]
cmp ax, 0x51
mov dword [esp + 0x54], 0
mov dword [esp + 0x6c], 1
jne 0x10c235eb
mov eax, 0x2aaaaaab
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x6c], 6
mov dword [esp + 0x38], eax
jmp 0x10c23602
cmp ax, 0x53
jne 0x10c23606
mov eax, edx
cdq
idiv ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x38]
mov al, byte [ecx + 0x23ba]
test al, al
je 0x10c23630
mov dword [0x112363d4], 0x3f800000
mov dword [0x112363d8], 0x3f800000
mov dword [0x112363dc], 0x3f800000
jmp 0x10c2364e
mov dword [0x112363d4], 0x3e9e353f
mov dword [0x112363d8], 0x3f1be76d
mov dword [0x112363dc], 0x3da7ef9e
cmp dword [ebp + 0xc], 3
ja 0x10c2367d
cmp edx, 1
mov byte [esp + 0x5c], 1
jb 0x10c23675
je 0x10c23667
lea ecx, [edx - 1]
test edx, ecx
jne 0x10c23675
cmp ebx, 1
jb 0x10c23675
je 0x10c23682
lea edx, [ebx - 1]
test ebx, edx
je 0x10c23682
or eax, 0xffffffff
jmp 0x10c26865
mov byte [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
push eax
push ebx
push ecx
call fcn.10c2c600
mov edx, dword [ebp + 8]
mov edi, eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
add esp, 0xc
xor esi, esi
cmp eax, 0xe
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], ecx
mov byte [edx + 0x2396], cl
ja case.default.0x10c236b8
jmp dword [eax*4 + 0x10c26888]
mov dword [esp + 0x20], 0x31545844
mov byte [esp + 0x17], 1
mov byte [0x112363d1], 0
xor esi, esi
mov ecx, 2
jmp case.default.0x10c236b8
mov dword [esp + 0x20], 0x33545844
mov byte [esp + 0x17], 1
mov byte [0x112363d1], 1
mov esi, 0x100
xor ecx, ecx
jmp case.default.0x10c236b8
mov dword [esp + 0x20], 0x35545844
mov byte [esp + 0x17], 1
mov byte [0x112363d1], 1
xor ecx, ecx
mov esi, 0x200
jmp case.default.0x10c236b8
xor esi, esi
mov dword [esp + 0x20], 0x31545844
mov byte [esp + 0x17], 1
mov byte [0x112363d1], 0
xor ecx, ecx
jmp case.default.0x10c236b8
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x1e
shl eax, 1
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x19
shl eax, 1
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x17
shl eax, 1
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x18
shl eax, 1
jmp 0x10c23821
mov edx, dword [ebp + 8]
mov byte [edx + 0x2396], 1
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x3c
shl eax, 1
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x75
shl eax, 1
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x15
shl eax, 2
jmp 0x10c23821
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov dword [esp + 0x20], 0x14
lea eax, [eax + eax*2]
jmp 0x10c23821
mov dword [esp + 0x20], 0x29
mov dword [esp + 0x48], 0x100
jmp 0x10c2381b
mov eax, dword [edi + 4]
imul eax, dword [edi]
cdq
sub eax, edx
mov dword [esp + 0x20], 0x29
sar eax, 1
mov dword [esp + 0x48], 0x10
jmp 0x10c23821
mov dword [esp + 0x20], 0x1c
mov eax, dword [edi + 4]
imul eax, dword [edi]
mov byte [esp + 0x17], 0
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x10c2388c
mov al, byte [esp + 0x17]
test al, al
je 0x10c23866
or ecx, esi
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push ecx
call fcn.10c29630
mov edx, dword [esp + 0x60]
push eax
push esi
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
push edx
push eax
mov eax, dword [esp + 0x54]
mov esi, ebx
call fcn.10c21e50
add esp, 0x1c
jmp 0x10c2388c
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x38]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
mov eax, dword [esp + 0x58]
push ecx
call fcn.10c23140
mov ebx, dword [esp + 0x5c]
add esp, 0x10
mov esi, dword [ebp + 8]
lea edx, [esi + 0x23c0]
push edx
call fcn.10c304f0
mov al, byte [0x112363d0]
add esp, 4
test al, al
je 0x10c2428b
mov eax, dword [esp + 0x6c]
test eax, eax
mov dword [esp + 0x44], 0
jle 0x10c24280
mov ebx, dword [esp + 0x20]
mov esi, dword [ebp + 8]
cmp word [esi + 0x238a], 0x1f
jne 0x10c238e5
mov eax, dword [esi + 4]
movsx eax, word [eax + 0x34]
imul eax, dword [esp + 0x44]
imul eax, dword [esp + 0x38]
shl eax, 1
jmp 0x10c238f6
mov ecx, dword [esi + 4]
movsx eax, word [ecx + 0x34]
imul eax, dword [esp + 0x44]
imul eax, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x50]
push ecx
push eax
mov eax, dword [esp + 0x44]
push edx
push eax
push esi
push edi
call fcn.10c2c660
mov al, byte [esi + 0x2373]
add esp, 0x1c
test al, al
je 0x10c23977
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x3c]
push 8
push edx
movsx eax, word [esi + 0x2484]
xor edx, edx
mov dl, byte [esi + 0x248c]
push ecx
xor ecx, ecx
mov cl, byte [esi + 0x248b]
push edx
xor edx, edx
mov dl, byte [esi + 0x248a]
push ecx
mov ecx, dword [esi + 0x247c]
push edx
mov edx, dword [esi + 0x2480]
push ecx
movsx ecx, word [esi + 0x2488]
push edx
movsx edx, word [esi + 0x2486]
push ecx
push edx
push eax
call fcn.10c30c10
add esp, 0x30
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c2398f
mov al, byte [esi + 0x2373]
test al, al
je 0x10c23aed
mov eax, dword [edi + 4]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x3c], ecx
jle 0x10c23aed
mov eax, dword [edi]
mov esi, dword [edi + 8]
mov edx, eax
imul edx, ecx
test eax, eax
lea esi, [esi + edx*4]
mov dword [esp + 0x24], 0
jle 0x10c23add
lea ecx, [ecx]
mov eax, dword [esi]
test eax, 0xffffff
je 0x10c23ac3
movzx edx, byte [esi + 2]
movzx ecx, byte [esi + 3]
movzx ebx, byte [esi + 1]
and eax, 0xff
test edx, edx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
jge 0x10c239f0
fadd dword [0x10e52ea0]
test ebx, ebx
fmul qword [0x10eac188]
mov dword [esp + 0x28], ebx
fsub qword [0x10e470d8]
fstp qword [esp + 0x70]
fild dword [esp + 0x28]
jge 0x10c23a12
fadd dword [0x10e52ea0]
test eax, eax
fmul qword [0x10eac188]
mov dword [esp + 0x28], eax
fsub qword [0x10e470d8]
fstp qword [esp + 0x78]
fild dword [esp + 0x28]
jge 0x10c23a34
fadd dword [0x10e52ea0]
fmul qword [0x10eac188]
mov dword [esp + 0x50], ecx
fsub qword [0x10e470d8]
fstp qword [esp + 0x80]
fld qword [esp + 0x80]
fmul qword [esp + 0x80]
fld qword [esp + 0x78]
fmul qword [esp + 0x78]
faddp st(1)
fld qword [esp + 0x70]
fmul qword [esp + 0x70]
faddp st(1)
fld st(0)
fabs
fcomp qword [0x10eac178]
fnstsw ax
test ah, 0x41
jne 0x10c23aaa
fsqrt
fdivr qword [0x10e470d8]
fld qword [esp + 0x70]
fmul st(1)
fstp qword [esp + 0x70]
fld qword [esp + 0x78]
fmul st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x80]
fmul st(1)
fstp qword [esp + 0x80]
push esi
fstp st(0)
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.10c21740
mov ebx, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x24]
mov ecx, dword [edi]
inc eax
add esi, 4
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x10c239c0
mov ecx, dword [esp + 0x3c]
mov eax, dword [edi + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0x3c], ecx
jl 0x10c239a0
mov edx, dword [ebp + 8]
mov al, byte [edx + 0x23bd]
test al, al
je 0x10c23b20
mov eax, dword [edi]
mov ecx, edx
mov edx, dword [ecx + 0x2458]
mov ecx, dword [edi + 4]
push edx
push ecx
push eax
lea edx, [eax*4]
mov eax, dword [edi + 8]
push 4
push edx
push eax
call fcn.10c305e0
add esp, 0x18
mov eax, dword [ebp + 0xc]
cmp eax, 0xe
ja case.default.0x10c23b2e
mov ecx, eax
jmp dword [ecx*4 + 0x10c268c4]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x2395]
test cl, cl
jne 0x10c23b50
mov cl, byte [eax + 0x2373]
test cl, cl
jne 0x10c23b50
xor al, al
jmp 0x10c23b54
xor eax, eax
mov al, 1
push eax
mov eax, dword [ebp + 8]
xor edx, edx
mov dl, byte [eax + 0x23bb]
movzx eax, byte [eax + 0x23ba]
lea ebx, [esp + 0x1c]
push edx
push eax
mov edx, edi
call fcn.10c21b40
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x20], ebx
jmp case.default.0x10c23b2e
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x2395]
test cl, cl
jne 0x10c23b9d
mov cl, byte [eax + 0x2373]
test cl, cl
jne 0x10c23b9d
xor al, al
jmp 0x10c23ba1
xor eax, eax
mov al, 1
push eax
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + 0x23bb]
xor edx, edx
mov dl, byte [eax + 0x23ba]
lea ebx, [esp + 0x1c]
push ecx
push edx
mov edx, edi
call fcn.10c21c70
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x20], ebx
jmp case.default.0x10c23b2e
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x2395]
test cl, cl
jne 0x10c23beb
mov cl, byte [eax + 0x2373]
test cl, cl
jne 0x10c23beb
xor al, al
jmp 0x10c23bef
xor eax, eax
mov al, 1
push eax
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + 0x23bb]
xor edx, edx
mov dl, byte [eax + 0x23ba]
lea ebx, [esp + 0x1c]
push ecx
push edx
mov edx, edi
call fcn.10c21d60
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x20], ebx
jmp case.default.0x10c23b2e
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x2395]
test cl, cl
jne 0x10c23c39
mov cl, byte [eax + 0x2373]
test cl, cl
jne 0x10c23c39
xor al, al
jmp 0x10c23c3d
xor eax, eax
mov al, 1
push eax
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + 0x23bc]
xor edx, edx
mov dl, byte [eax + 0x23bb]
movzx eax, byte [eax + 0x23ba]
lea ebx, [esp + 0x1c]
push ecx
push edx
push eax
mov edx, edi
call fcn.10c21a60
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x20], ebx
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [edi + 4]
imul edx, dword [edi]
mov ecx, dword [edi + 8]
mov ebx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
lea esp, [esp]
mov eax, dword [ecx]
mov edx, eax
mov esi, eax
shr edx, 0x10
shr esi, 0xc
and edx, 0xf000
and esi, 0xf00
or edx, esi
mov esi, eax
shr eax, 4
shr esi, 8
and eax, 0xf
and esi, 0xf0
or edx, esi
or edx, eax
mov eax, dword [esp + 0x24]
mov word [eax], dx
mov edx, dword [edi + 4]
imul edx, dword [edi]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
add ecx, 4
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x10c23cb0
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi + 4]
imul eax, dword [edi]
add esp, 4
test eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
mov eax, dword [ecx]
mov edx, eax
mov esi, eax
shr edx, 6
shr esi, 3
and edx, 0x3e0
and esi, 0x1f
or edx, esi
mov esi, eax
shr eax, 9
shr esi, 0x10
and eax, 0x7c00
and esi, 0x8000
or edx, esi
or edx, eax
mov eax, dword [esp + 0x24]
mov word [eax], dx
mov edx, dword [edi + 4]
imul edx, dword [edi]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
add ecx, 4
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x10c23d40
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi + 4]
imul eax, dword [edi]
add esp, 4
test eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
nop
mov eax, dword [ecx]
mov edx, eax
mov esi, eax
shr edx, 6
and edx, 0x3e0
shr eax, 9
shr esi, 3
and eax, 0x7c00
and esi, 0x1f
or edx, esi
or edx, eax
mov eax, dword [esp + 0x24]
mov word [eax], dx
mov edx, dword [edi + 4]
imul edx, dword [edi]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
add ecx, 4
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x10c23dd0
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [edi + 8]
mov ebx, eax
mov eax, dword [edi + 4]
imul eax, dword [edi]
add esp, 4
test eax, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
mov eax, dword [ecx]
mov edx, eax
mov esi, eax
shr edx, 5
and edx, 0x7e0
shr eax, 8
shr esi, 3
and eax, 0xf800
and esi, 0x1f
or edx, esi
or edx, eax
mov eax, dword [esp + 0x24]
mov word [eax], dx
mov edx, dword [edi + 4]
imul edx, dword [edi]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
add ecx, 4
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jl 0x10c23e52
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [edi + 4]
imul edx, dword [edi]
mov ecx, dword [edi + 8]
add esp, 4
test edx, edx
mov ebx, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
mov esi, dword [ecx]
mov edx, esi
shr edx, 0x10
mov byte [eax], dl
add ecx, 4
mov edx, esi
shr edx, 8
inc eax
mov byte [eax], dl
mov esi, dword [edi + 4]
imul esi, dword [edi]
mov edx, dword [esp + 0x10]
inc eax
inc edx
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x10c23ed0
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [edi + 4]
imul edx, dword [edi]
mov ecx, dword [edi + 8]
add esp, 4
test edx, edx
mov ebx, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], 0
jle case.default.0x10c23b2e
mov esi, dword [ecx]
mov edx, esi
shr edx, 0x10
mov byte [eax], dl
add ecx, 4
mov edx, esi
shr edx, 8
inc eax
mov byte [eax], dl
mov esi, dword [edi + 4]
imul esi, dword [edi]
mov edx, dword [esp + 0x10]
inc eax
inc edx
cmp edx, esi
mov dword [esp + 0x10], edx
jl 0x10c23f31
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
shl eax, 2
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [edi + 4]
imul ecx, dword [edi]
mov esi, dword [edi + 8]
shl ecx, 2
mov ebx, eax
mov eax, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], ebx
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
lea eax, [eax + eax*2]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [edi + 4]
imul edx, dword [edi]
mov esi, dword [edi + 8]
add esp, 4
mov ebx, eax
xor ecx, ecx
test edx, edx
mov dword [esp + 0x20], ebx
jle case.default.0x10c23b2e
mov edi, edi
mov dl, byte [esi]
mov byte [eax], dl
mov dl, byte [esi + 1]
inc eax
mov byte [eax], dl
mov dl, byte [esi + 2]
inc eax
mov byte [eax], dl
mov edx, dword [edi + 4]
imul edx, dword [edi]
inc eax
add esi, 4
inc ecx
cmp ecx, edx
jl 0x10c23fd0
jmp case.default.0x10c23b2e
mov eax, dword [edi + 4]
imul eax, dword [edi]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [edi + 4]
imul edx, dword [edi]
mov ecx, dword [edi + 8]
mov ebx, eax
add esp, 4
xor eax, eax
test edx, edx
mov dword [esp + 0x20], ebx
jle case.default.0x10c23b2e
lea esi, [ecx + 3]
mov cl, byte [esi]
mov byte [eax + ebx], cl
mov edx, dword [edi + 4]
imul edx, dword [edi]
add esi, 4
inc eax
cmp eax, edx
jl 0x10c24023
jmp case.default.0x10c23b2e
xor esi, esi
push 0x400
mov dword [esp + 0xcc], 0x100
mov dword [esp + 0xd0], esi
call fcn.1097a670
mov dword [esp + 0xc8], eax
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
movzx eax, byte [eax + 0x23b8]
mov dword [esp + 0xc4], esi
mov dword [esp + 0xd0], esi
cmp word [ecx + 0x34], 3
mov ecx, dword [esp + 0x4c]
push ecx
sete dl
mov byte [esp + 0x24], dl
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [edi + 4]
push eax
mov eax, dword [edi]
push 4
push 8
lea ecx, [esp + 0xc8]
push ecx
mov ecx, dword [edi + 8]
push 4
push edx
push eax
push ecx
mov dword [esp + 0xa20], esi
call fcn.10c2dcf0
mov ecx, dword [esp + 0x74]
mov ebx, eax
mov eax, dword [edi + 4]
imul eax, dword [edi]
add esp, 0x2c
cmp ecx, 0x10
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], eax
jne 0x10c24104
cdq
sub eax, edx
sar eax, 1
cmp eax, esi
mov dword [esp + 0x18], eax
jne 0x10c24104
mov dword [esp + 0x18], 1
cmp dword [esp + 0xbc], 3
mov ecx, dword [esp + 0xc0]
jne 0x10c2415f
xor eax, eax
cmp ecx, esi
jle 0x10c2419f
mov esi, dword [esp + 0xc4]
add esi, 4
lea esp, [esp]
mov dl, byte [esi + 4]
mov byte [esp + eax*4 + 0x1e2], dl
mov dl, byte [esi]
mov byte [esp + eax*4 + 0x1e1], dl
mov dl, byte [esi - 4]
mov byte [esp + eax*4 + 0x1e0], dl
mov byte [esp + eax*4 + 0x1e3], 0xff
inc eax
add esi, 0xc
cmp eax, ecx
jl 0x10c24130
jmp 0x10c2419f
xor eax, eax
cmp ecx, esi
jle 0x10c2419f
mov esi, dword [esp + 0xc4]
add esi, 8
nop
mov dl, byte [esi - 8]
mov byte [esp + eax*4 + 0x1e2], dl
mov dl, byte [esi - 4]
mov byte [esp + eax*4 + 0x1e1], dl
mov dl, byte [esi]
mov byte [esp + eax*4 + 0x1e0], dl
mov dl, byte [esi + 4]
mov byte [esp + eax*4 + 0x1e3], dl
inc eax
add esi, 0x10
cmp eax, ecx
jl 0x10c24170
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c241cc
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2474]
mov ecx, dword [esp + 0x48]
push edx
push ecx
push 4
shl ecx, 2
push ecx
lea edx, [esp + 0x1f0]
push 0
push edx
call eax
add esp, 0x18
jmp 0x10c241ec
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x1e0]
push eax
mov eax, dword [ebp + 8]
lea edx, [ecx*4]
push edx
push eax
call fcn.10c20ec0
add esp, 0xc
mov eax, dword [esp + 0xc4]
test eax, eax
mov dword [esp + 0x9f4], 0xffffffff
je case.default.0x10c23b2e
push eax
call fcn.10901b30
add esp, 4
mov dword [esp + 0xc4], 0
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c2423d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2474]
mov ecx, dword [edi + 4]
push edx
mov edx, dword [edi]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push ecx
push 0
push ebx
call eax
add esp, 0x18
jmp 0x10c24262
mov al, byte [esp + 0x17]
test al, al
push ebx
je 0x10c24251
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
push edx
push eax
jmp 0x10c2425a
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
push ecx
push edx
call fcn.10c20ec0
add esp, 0xc
push ebx
call fcn.10dde80a
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x10c238c3
push edi
call fcn.10c2c630
jmp 0x10c2685d
cmp word [esi + 0x246a], 0x53
je 0x10c25712
mov esi, dword [esp + 0x38]
lea ecx, [esp + 0x128]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x54], ebx
call fcn.10c234e0
mov ecx, dword [esp + 0x6c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x9f4], 1
mov dword [esp + 0x144], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x68], eax
jle 0x10c25700
imul ebx, esi
shl ebx, 2
lea eax, [esi*4]
mov dword [esp + 0x50], ebx
mov dword [esp + 0xf0], eax
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x54]
push edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], ebx
call fcn.10c2c630
mov ecx, dword [esp + 0x60]
push ecx
push ebx
push esi
call fcn.10c2c600
mov ebx, eax
mov eax, dword [ebp + 8]
add esp, 0x10
cmp word [eax + 0x238a], 0x1f
mov dword [esp + 0x34], ebx
jne 0x10c2433f
mov edx, dword [eax + 4]
movsx eax, word [edx + 0x34]
imul eax, dword [esp + 0x68]
imul eax, esi
shl eax, 1
jmp 0x10c2434e
mov eax, dword [eax + 4]
movsx eax, word [eax + 0x34]
imul eax, dword [esp + 0x68]
imul eax, esi
mov ecx, dword [esp + 0x5c]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
push edi
push ebx
mov dword [esp + 0x74], eax
call fcn.10c2c660
fld qword [0x10e461b0]
mov eax, 0xffffff11
fstp qword [esp + 0x1cc]
xor ecx, ecx
add esp, 0x1c
mov edx, 0x10eabf18
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], ecx
push 4
lea ecx, [esp + 0x110]
mov byte [0x1123639c], 1
mov byte [esp + 0xe8], 1
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], 1
mov dword [esp + 0xf8], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], eax
call fcn.10c26d80
mov eax, dword [edi + 0x2390]
push eax
call fcn.10c294f0
mov ecx, dword [edi + 0x2390]
push ecx
mov esi, eax
call fcn.10c294f0
mov edx, dword [ebp + 8]
fld dword [edx + 0x2464]
mov ecx, 0xa
fcomp dword [0x10e4500c]
lea edi, [esp + 0x190]
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, 0xa
fnstsw ax
lea edi, [esp + 0x168]
add esp, 8
test ah, 1
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jne 0x10c244c9
fld dword [ecx + 0x2464]
fstp qword [esp + 0x190]
fld dword [ecx + 0x2464]
fstp qword [esp + 0x168]
fld dword [ecx + 0x2460]
fcomp dword [0x10e4500c]
fnstsw ax
test ah, 1
jne 0x10c244f6
fld dword [ecx + 0x2460]
fstp qword [esp + 0x198]
fld dword [ecx + 0x2460]
fstp qword [esp + 0x170]
mov esi, dword [esp + 0x50]
push esi
call fcn.1097a670
mov ecx, esi
mov esi, dword [ebx + 8]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add esp, 4
mov ecx, edx
mov edx, dword [esp + 0x54]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xf0]
push 4
push ecx
mov ecx, dword [esp + 0x44]
push edx
push ecx
push eax
lea ecx, [esp + 0xc4]
mov dword [esp + 0x3c], eax
call fcn.10c26e90
lea ecx, [esp + 0xb0]
mov byte [esp + 0xe4], 1
mov dword [esp + 0xec], 1
call fcn.10c26bf0
mov esi, eax
cmp esi, 0xffffff11
jne 0x10c24578
mov esi, 3
push esi
lea ecx, [esp + 0xb4]
call fcn.10c26d80
push esi
lea ecx, [esp + 0x110]
call fcn.10c26d80
mov eax, dword [esp + 0x148]
mov esi, 0xffffff11
cmp eax, esi
jne 0x10c245ad
lea edx, [esp + 0x148]
push edx
lea eax, [esp + 0xb4]
push eax
call fcn.10c26ee0
add esp, 8
cmp dword [esp + 0x150], esi
jne 0x10c245ca
lea ecx, [esp + 0x148]
push ecx
lea ecx, [esp + 0xd4]
call fcn.10c28c30
mov esi, dword [ebp + 8]
mov byte [0x1123639c], 0
fild dword [esi + 0x23b0]
mov byte [esp + 0x43], 0
mov dword [esp + 0x44], 0
fmul dword [0x10e601d4]
fsubr dword [0x10e45008]
fst dword [esp + 0xac]
fstp dword [esp + 0x20]
mov edi, edi
mov ecx, dword [esi + 0x2458]
test ecx, ecx
je 0x10c24636
mov eax, dword [esp + 0x44]
test eax, eax
jg 0x10c2461c
mov al, byte [esi + 0x23bd]
test al, al
je 0x10c24636
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
push ecx
mov ecx, dword [ebx + 8]
push edx
push eax
push 4
shl eax, 2
push eax
push ecx
call fcn.10c305e0
add esp, 0x18
mov al, byte [esi + 0x23b9]
test al, al
je 0x10c2469c
mov eax, dword [ebx + 4]
test eax, eax
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], 0
jle 0x10c2469c
mov eax, dword [ebx]
xor edi, edi
test eax, eax
jle 0x10c2468c
mov edi, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0xc]
push eax
push edi
push ecx
push edx
push esi
call fcn.10c23360
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [ebx]
add ecx, 4
add esp, 0x14
inc edi
cmp edi, eax
mov dword [esp + 0x10], ecx
jl 0x10c24660
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx + 4]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x10c24656
mov al, byte [esi + 0x2373]
test al, al
je 0x10c246ff
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
push eax
push 8
push ecx
push edx
xor eax, eax
mov al, byte [esi + 0x248c]
xor ecx, ecx
mov cl, byte [esi + 0x248b]
xor edx, edx
mov dl, byte [esi + 0x248a]
push eax
mov eax, dword [esi + 0x247c]
push ecx
mov ecx, dword [esi + 0x2480]
push edx
movsx edx, word [esi + 0x2488]
push eax
movsx eax, word [esi + 0x2486]
push ecx
movsx ecx, word [esi + 0x2484]
push edx
push eax
push ecx
call fcn.10c30c10
add esp, 0x30
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c24717
mov al, byte [esi + 0x2373]
test al, al
je 0x10c24886
mov eax, dword [ebx + 4]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x10], ecx
jle 0x10c24886
mov eax, dword [ebx]
mov edi, dword [ebx + 8]
mov edx, eax
imul edx, ecx
test eax, eax
lea edi, [edi + edx*4]
mov dword [esp + 0x24], 0
jle 0x10c24876
jmp 0x10c24750
mov eax, dword [edi]
test eax, 0xffffff
je 0x10c2485c
movzx ecx, byte [edi + 2]
movzx edx, byte [edi + 1]
mov dword [esp + 0x1c], ecx
and eax, 0xff
test eax, eax
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x60], eax
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fstp qword [esp + 0x90]
fild dword [esp + 0x1c]
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fstp qword [esp + 0x98]
fild dword [esp + 0x60]
jge 0x10c247b2
fadd dword [0x10e52ea0]
fmul qword [0x10eac188]
movzx eax, byte [edi + 3]
mov dword [esp + 0x1c], eax
fsub qword [0x10e470d8]
fstp qword [esp + 0xa0]
fld qword [esp + 0xa0]
fmul qword [esp + 0xa0]
fld qword [esp + 0x98]
fmul qword [esp + 0x98]
faddp st(1)
fld qword [esp + 0x90]
fmul qword [esp + 0x90]
faddp st(1)
fld st(0)
fabs
fcomp qword [0x10eac178]
fnstsw ax
test ah, 0x41
jne 0x10c24844
fsqrt
fdivr qword [0x10e470d8]
fld qword [esp + 0x90]
fmul st(1)
fstp qword [esp + 0x90]
fld qword [esp + 0x98]
fmul st(1)
fstp qword [esp + 0x98]
fld qword [esp + 0xa0]
fmul st(1)
fstp qword [esp + 0xa0]
push edi
fstp st(0)
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.10c21740
add esp, 0xc
mov eax, dword [esp + 0x24]
mov ecx, dword [ebx]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x10c24750
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0x10], ecx
jl 0x10c24728
mov eax, dword [ebp + 0xc]
xor edi, edi
cmp eax, 0xe
mov dword [esp + 0x24], edi
ja case.default.0x10c24894
jmp dword [eax*4 + 0x10c26900]
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c248b3
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c248b3
xor al, al
jmp 0x10c248b7
xor eax, eax
mov al, 1
mov edx, dword [esp + 0x34]
push eax
xor eax, eax
mov al, byte [esi + 0x23bb]
xor ecx, ecx
mov cl, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push eax
push ecx
call fcn.10c21b40
add esp, 0xc
mov ebx, dword [esp + 0x34]
mov edi, eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c24fa5
mov eax, dword [esi + 0x2474]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
push edi
call dword [ebp + 0x10]
add esp, 0x18
jmp 0x10c24fc3
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c2492a
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c2492a
xor al, al
jmp 0x10c2492e
xor eax, eax
mov al, 1
push eax
xor edx, edx
mov dl, byte [esi + 0x23bb]
xor eax, eax
mov al, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x3c]
push eax
call fcn.10c21c70
jmp 0x10c248d7
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c24968
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c24968
xor al, al
jmp 0x10c2496c
xor eax, eax
mov al, 1
xor ecx, ecx
mov cl, byte [esi + 0x23bb]
xor edx, edx
mov dl, byte [esi + 0x23ba]
push eax
lea ebx, [esp + 0x1c]
push ecx
push edx
mov edx, dword [esp + 0x40]
call fcn.10c21d60
jmp 0x10c248d7
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c249a9
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c249a9
xor al, al
jmp 0x10c249ad
xor eax, eax
mov al, 1
push eax
xor eax, eax
mov al, byte [esi + 0x23bc]
xor ecx, ecx
mov cl, byte [esi + 0x23bb]
xor edx, edx
mov dl, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push eax
push ecx
push edx
mov edx, dword [esp + 0x44]
call fcn.10c21a60
add esp, 0x10
jmp 0x10c248da
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 8]
mov edi, eax
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
add esp, 4
test eax, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24a20
mov ecx, dword [esp + 0x1c]
jmp 0x10c24a20
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov edx, eax
shr ecx, 0xc
shr edx, 8
and ecx, 0xf00
and edx, 0xf0
or ecx, edx
mov edx, eax
shr eax, 0x10
shr edx, 4
and eax, 0xf000
and edx, 0xf
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c24a14
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24ab5
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov edx, eax
shr ecx, 6
shr edx, 3
and ecx, 0x3e0
and edx, 0x1f
or ecx, edx
mov edx, eax
shr eax, 9
shr edx, 0x10
and eax, 0x7c00
and edx, 0x8000
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c24ab1
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24b50
mov ecx, dword [esp + 0x1c]
lea ebx, [ebx]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov edx, eax
shr ecx, 6
and ecx, 0x3e0
shr eax, 9
shr edx, 3
and eax, 0x7c00
and edx, 0x1f
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c24b46
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov edx, dword [ebx + 8]
add esp, 4
test ecx, ecx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24bd4
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 8
inc eax
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
inc eax
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
cmp dword [esp + 0x10], ecx
jl 0x10c24bd0
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov edx, dword [ebx + 8]
add esp, 4
test ecx, ecx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24c40
mov edx, dword [esp + 0x1c]
jmp 0x10c24c40
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 8
inc eax
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
inc eax
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
cmp dword [esp + 0x10], ecx
jl 0x10c24c37
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
jmp 0x10c24cb0
mov ecx, dword [esp + 0x1c]
jmp 0x10c24cb0
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, eax
mov edx, eax
shr ecx, 5
and ecx, 0x7e0
shr eax, 8
shr edx, 3
and eax, 0xf800
and edx, 0x1f
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x24]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c24ca7
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 2
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov esi, dword [ebx + 8]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x24], eax
mov edi, eax
jmp 0x10c248e0
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
lea eax, [eax + eax*2]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c24894
lea esp, [esp]
mov dl, byte [ecx]
mov byte [eax], dl
mov dl, byte [ecx + 1]
mov byte [eax + 1], dl
mov dl, byte [ecx + 2]
inc eax
inc eax
mov byte [eax], dl
mov edx, dword [esp + 0x10]
inc eax
add ecx, 4
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
cmp dword [esp + 0x10], edx
jl 0x10c24d70
jmp case.default.0x10c24894
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
mov edi, eax
add esp, 4
xor eax, eax
test edx, edx
jle case.default.0x10c24894
add ecx, 3
lea ebx, [ebx]
mov dl, byte [ecx]
mov byte [eax + edi], dl
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
add ecx, 4
inc eax
cmp eax, edx
jl 0x10c24dd0
jmp case.default.0x10c24894
mov eax, dword [esi + 4]
cmp word [eax + 0x34], 3
mov eax, dword [esp + 0x44]
sete cl
test eax, eax
mov byte [esp + 0x8c], cl
jne 0x10c24e38
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x8c]
push edx
xor ecx, ecx
mov cl, byte [esi + 0x23b8]
push eax
mov eax, dword [ebx + 4]
lea edx, [esp + 0x130]
push ecx
mov ecx, dword [ebx]
push 4
push 8
push edx
mov edx, dword [ebx + 8]
push 4
push eax
push ecx
push edx
call fcn.10c2dcf0
jmp 0x10c24e6c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x8c]
push eax
xor edx, edx
mov dl, byte [esi + 0x23b8]
push ecx
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x130]
push edx
mov edx, dword [ebx]
push 4
push 8
push eax
mov eax, dword [ebx + 8]
push 4
push ecx
push edx
push eax
call fcn.10c2be80
mov ecx, dword [esp + 0x70]
mov edi, eax
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
add esp, 0x28
cmp ecx, 0x10
mov dword [esp + 0x18], eax
jne 0x10c24e99
cdq
sub eax, edx
sar eax, 1
test eax, eax
mov dword [esp + 0x18], eax
jne 0x10c24e99
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x44]
test eax, eax
jne case.default.0x10c24894
cmp dword [esp + 0x134], 3
mov ecx, dword [esp + 0x138]
jne 0x10c24f06
xor eax, eax
test ecx, ecx
jle 0x10c24f56
mov ecx, dword [esp + 0x13c]
add ecx, 4
lea ebx, [ebx]
mov dl, byte [ecx + 4]
mov byte [esp + eax*4 + 0x1e2], dl
mov dl, byte [ecx]
mov byte [esp + eax*4 + 0x1e1], dl
mov dl, byte [ecx - 4]
mov byte [esp + eax*4 + 0x1e0], dl
mov edx, dword [esp + 0x138]
mov byte [esp + eax*4 + 0x1e3], 0xff
inc eax
add ecx, 0xc
cmp eax, edx
jl 0x10c24ed0
jmp 0x10c24f56
xor eax, eax
test ecx, ecx
jle 0x10c24f56
mov ecx, dword [esp + 0x13c]
add ecx, 8
jmp 0x10c24f20
mov dl, byte [ecx - 8]
mov byte [esp + eax*4 + 0x1e2], dl
mov dl, byte [ecx - 4]
mov byte [esp + eax*4 + 0x1e1], dl
mov dl, byte [ecx]
mov byte [esp + eax*4 + 0x1e0], dl
mov dl, byte [ecx + 4]
mov byte [esp + eax*4 + 0x1e3], dl
mov edx, dword [esp + 0x138]
inc eax
add ecx, 0x10
cmp eax, edx
jl 0x10c24f20
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c24f88
mov eax, dword [esi + 0x2474]
push eax
mov eax, dword [esp + 0x4c]
push eax
push 4
lea ecx, [eax*4]
push ecx
lea edx, [esp + 0x1f0]
push 0
push edx
call dword [ebp + 0x10]
add esp, 0x18
jmp case.default.0x10c24894
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x1e0]
push eax
lea edx, [ecx*4]
push edx
push esi
call fcn.10c20ec0
add esp, 0xc
mov al, byte [esp + 0x17]
test al, al
push edi
je 0x10c24fb5
mov edx, dword [esp + 0x1c]
push edx
jmp 0x10c24fba
mov eax, dword [esp + 0x1c]
push eax
push esi
call fcn.10c20ec0
add esp, 0xc
push edi
call fcn.10dde80a
mov ecx, dword [esp + 0x48]
mov al, byte [esi + 0x2332]
add esp, 4
inc ecx
cmp al, 1
mov dword [esp + 0x44], ecx
jne 0x10c24fea
fld dword [esi + ecx*4 + 0x2334]
fstp dword [esp + 0x20]
fld dword [0x10e45008]
mov edi, dword [esp + 0x38]
cmp edi, 1
fsub dword [esp + 0x20]
fstp dword [esp + 0x10]
jg 0x10c25012
cmp dword [esp + 0x4c], 1
jg 0x10c25012
mov byte [esp + 0x43], 1
jmp 0x10c256b9
cmp word [esi + 0x238a], 0x1f
jne 0x10c25087
push ebx
call fcn.10c2c630
mov edx, dword [esi + 4]
movsx eax, word [edx + 0x34]
mov ebx, dword [esp + 0x5c]
imul eax, edi
mov ecx, dword [esp + 0x60]
add ebx, eax
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, dword [esp + 0x50]
inc eax
cdq
sub eax, edx
sar eax, 1
push ecx
mov dword [esp + 0x60], ebx
mov ebx, eax
push ebx
push edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], ebx
call fcn.10c2c600
mov edx, dword [esp + 0x6c]
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x6c]
push ecx
push edx
push ebx
push edi
push esi
push eax
mov dword [esp + 0x60], eax
call fcn.10c2c660
mov ebx, dword [esp + 0x60]
add esp, 0x2c
jmp 0x10c25191
xor esi, esi
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], esi
mov eax, dword [ebx]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x104], eax
mov eax, dword [ebx + 4]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x108], eax
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0xd4]
call fcn.10c28c30
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
push 4
push ecx
push edx
lea ecx, [esp + 0x118]
call fcn.10c26e20
push esi
push esi
lea eax, [esp + 0x168]
push eax
lea ecx, [esp + 0x194]
push ecx
lea edx, [esp + 0x104]
push edx
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0xcc]
push edx
lea ecx, [esp + 0xf0]
call fcn.10c28960
mov ecx, dword [esp + 0x108]
imul ecx, dword [esp + 0x104]
mov esi, dword [esp + 0x124]
mov edi, dword [ebx + 8]
shl ecx, 2
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10c]
call fcn.10c26e60
mov eax, dword [ebx]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [ebx], eax
mov eax, dword [ebx + 4]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x38]
mov esi, dword [ebp + 8]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x4c], eax
mov al, byte [esi + 0x2397]
test al, al
je 0x10c25200
mov ecx, dword [ebx + 4]
xor eax, eax
test ecx, ecx
jle 0x10c251d5
mov ecx, 4
lea esp, [esp]
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
imul edx, eax
mov byte [edi + edx*4 + 3], 0
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
imul edx, ecx
mov byte [edx + edi - 1], 0
mov edx, dword [ebx + 4]
inc eax
add ecx, 4
cmp eax, edx
jl 0x10c251b0
mov ecx, dword [ebx]
xor eax, eax
test ecx, ecx
jle 0x10c25200
lea ecx, [ecx]
mov ecx, dword [ebx + 8]
mov byte [ecx + eax*4 + 3], 0
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 8]
dec edx
imul edx, dword [ebx]
add edx, eax
mov byte [ecx + edx*4 + 3], 0
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
jl 0x10c251e0
mov al, byte [esi + 0x2398]
test al, al
je 0x10c252b2
xor eax, eax
lea edi, [esi + 0x239c]
mov edx, dword [ebx + 4]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x1c], ecx
jle 0x10c25269
mov dword [esp + 0x24], 4
jmp 0x10c25230
mov edx, dword [ebx]
imul edx, ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + edx*4]
mov cl, byte [edi]
mov byte [edx + eax], cl
mov edx, dword [ebx]
imul edx, dword [esp + 0x24]
add edx, dword [ebx + 8]
mov cl, byte [edi]
mov byte [edx + eax - 4], cl
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add edx, 4
inc ecx
mov dword [esp + 0x24], edx
cmp ecx, dword [ebx + 4]
mov dword [esp + 0x1c], ecx
jl 0x10c25230
mov edx, dword [ebx]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x24], ecx
jle 0x10c252a7
mov edx, dword [ebx + 8]
lea ecx, [edx + ecx*4]
mov dl, byte [edi]
mov byte [ecx + eax], dl
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x24]
dec ecx
imul ecx, dword [ebx]
add ecx, edx
mov edx, dword [ebx + 8]
lea ecx, [edx + ecx*4]
mov dl, byte [edi]
mov byte [ecx + eax], dl
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
inc ecx
cmp ecx, edx
mov dword [esp + 0x24], ecx
jl 0x10c25275
inc eax
inc edi
cmp eax, 2
jle 0x10c25216
mov eax, dword [esp + 0x44]
cmp eax, dword [esi + 0x23ac]
jl 0x10c2565d
mov al, byte [esi + 0x23a0]
test al, al
je 0x10c255e0
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c25480
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c25480
mov al, byte [esi + 0x2396]
xor edx, edx
test al, al
mov eax, dword [ebx + 4]
je 0x10c25393
test eax, eax
jle 0x10c255e0
mov ecx, dword [ebx]
lea esp, [esp]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c25386
inc eax
movzx ecx, byte [eax + 1]
mov dword [esp + 0x1c], ecx
inc edi
fild dword [esp + 0x1c]
add eax, 4
fmul dword [0x10eac190]
fmul dword [esp + 0x20]
fmul dword [0x10e9366c]
fadd dword [0x10e4708c]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 3], cl
movzx ecx, byte [eax - 4]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fmul dword [0x10eac190]
fmul dword [esp + 0x20]
fmul dword [0x10e9366c]
fadd dword [0x10e4708c]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 4], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c25322
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c25310
jmp 0x10c255e0
test eax, eax
jle 0x10c255e0
mov ecx, dword [ebx]
lea ecx, [ecx]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c2546f
jmp 0x10c253c0
movzx ecx, byte [eax]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi + 0x23a4]
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
fmul dword [esp + 0x20]
inc edi
fild dword [esp + 0x1c]
add eax, 4
fmul dword [esp + 0x10]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 4], cl
movzx ecx, byte [esi + 0x23a5]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [eax - 3]
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
fmul dword [esp + 0x10]
fild dword [esp + 0x1c]
fmul dword [esp + 0x20]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 3], cl
movzx ecx, byte [esi + 0x23a6]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [eax - 2]
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], ecx
fmul dword [esp + 0x10]
fild dword [esp + 0x1c]
fmul dword [esp + 0x20]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 2], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c253c0
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c253a0
jmp 0x10c255e0
mov eax, dword [ebx + 4]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x24], ecx
jle 0x10c255e0
mov eax, dword [ebx]
mov edi, dword [ebx + 8]
mov edx, ecx
imul edx, eax
test eax, eax
lea edi, [edi + edx*4]
mov dword [esp + 0x1c], 0
jle 0x10c255d0
mov edi, edi
mov eax, dword [edi]
test eax, 0xffffff
je 0x10c255b6
movzx ecx, byte [edi + 2]
movzx edx, byte [edi + 1]
mov dword [esp + 0x60], ecx
and eax, 0xff
test eax, eax
fild dword [esp + 0x60]
mov dword [esp + 0x60], edx
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fild dword [esp + 0x60]
jge 0x10c25504
fadd dword [0x10e52ea0]
fmul qword [0x10eac188]
movzx eax, byte [edi + 3]
mov dword [esp + 0x60], eax
fsub qword [0x10e470d8]
fstp qword [esp + 0x80]
fld dword [esp + 0x20]
fmul st(2)
fstp qword [esp + 0x70]
fld dword [esp + 0x20]
fmul st(1)
fstp qword [esp + 0x78]
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fmul qword [esp + 0x80]
fst qword [esp + 0x80]
fmul qword [esp + 0x80]
fld qword [esp + 0x78]
fmul qword [esp + 0x78]
faddp st(1)
fld qword [esp + 0x70]
fmul qword [esp + 0x70]
faddp st(1)
fld st(0)
fabs
fcomp qword [0x10eac178]
fnstsw ax
test ah, 0x41
jne 0x10c255a1
fsqrt
fdivr qword [0x10e470d8]
fld qword [esp + 0x70]
fmul st(1)
fstp qword [esp + 0x70]
fld qword [esp + 0x78]
fmul st(1)
fstp qword [esp + 0x78]
fld qword [esp + 0x80]
fmul st(1)
fstp qword [esp + 0x80]
push edi
fstp st(0)
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.10c21740
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x10c254b0
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jl 0x10c25491
mov al, byte [esi + 0x23a1]
test al, al
je 0x10c2564e
mov eax, dword [ebx + 4]
xor edx, edx
test eax, eax
jle 0x10c2564e
mov ecx, dword [ebx]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c25646
add eax, 3
lea esp, [esp]
movzx ecx, byte [eax]
fild dword [esi + 0x23a8]
mov dword [esp + 0x60], ecx
inc edi
fmul dword [esp + 0x10]
add eax, 4
fild dword [esp + 0x60]
fmul dword [esp + 0x20]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x60]
mov cl, byte [esp + 0x60]
mov byte [eax - 4], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c25610
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c255f5
fld dword [esp + 0x20]
fmul dword [esp + 0xac]
fstp dword [esp + 0x20]
mov al, byte [esi + 0x2394]
test al, al
je 0x10c256b9
mov eax, dword [ebx + 4]
xor edx, edx
test eax, eax
jle 0x10c256b9
mov eax, dword [ebx]
mov edi, dword [ebx + 8]
mov ecx, edx
imul ecx, eax
lea ecx, [edi + ecx*4]
xor edi, edi
test eax, eax
jle 0x10c256b1
lea eax, [ecx + 3]
jmp 0x10c25690
movzx ecx, byte [eax]
cmp ecx, dword [esi + 0x23b4]
setl cl
dec cl
add eax, 4
and ecx, 0xff
mov byte [eax - 4], cl
mov ecx, dword [ebx]
inc edi
cmp edi, ecx
jl 0x10c25690
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c25670
mov ax, word [esi + 0x238c]
test ax, ax
jle 0x10c256ce
movsx edx, ax
cmp dword [esp + 0x44], edx
jge 0x10c256da
mov al, byte [esp + 0x43]
test al, al
je 0x10c24600
mov eax, dword [esp + 0x28]
push eax
call fcn.10901b30
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x68], eax
jl 0x10c242f4
push edi
call fcn.10c2c630
mov eax, dword [esp + 0x140]
jmp 0x10c26850
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0xd0]
mov dword [esp + 0x24], ebx
call fcn.10c234e0
mov ecx, dword [esp + 0x6c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x9f4], 2
mov dword [esp + 0xec], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x54], eax
jle 0x10c26843
mov esi, dword [ebp + 8]
jmp 0x10c25760
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x68]
push edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], edx
call fcn.10c2c630
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x28]
push eax
push ecx
push ebx
call fcn.10c2c600
add esp, 0x10
cmp word [esi + 0x238a], 0x1f
mov ebx, eax
mov dword [esp + 0x34], ebx
jne 0x10c257b2
mov edx, dword [esi + 4]
movsx eax, word [edx + 0x34]
imul eax, dword [esp + 0x54]
imul eax, dword [esp + 0x68]
shl eax, 1
mov dword [esp + 0x58], eax
jmp 0x10c257c7
mov eax, dword [esi + 4]
movsx eax, word [eax + 0x34]
imul eax, dword [esp + 0x54]
imul eax, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [ebp + 0xc]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
push ecx
push esi
push ebx
call fcn.10c2c660
mov byte [0x1123639c], 0
fild dword [esi + 0x23b0]
add esp, 0x1c
mov byte [esp + 0x43], 0
fmul dword [0x10e601d4]
mov dword [esp + 0x44], 0
fsubr dword [0x10e45008]
fst dword [esp + 0xac]
fstp dword [esp + 0x20]
mov ecx, dword [esi + 0x2458]
test ecx, ecx
je 0x10c2583a
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
push ecx
mov ecx, dword [ebx + 8]
push edx
push eax
push 4
shl eax, 2
push eax
push ecx
call fcn.10c305e0
add esp, 0x18
mov al, byte [esi + 0x23b9]
test al, al
je 0x10c258ac
mov eax, dword [ebx + 4]
test eax, eax
mov edx, dword [ebx + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], 0
jle 0x10c258ac
lea ebx, [ebx]
mov eax, dword [ebx]
xor edi, edi
test eax, eax
jle 0x10c2589c
jmp 0x10c25870
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0xc]
push eax
push edi
push ecx
push edx
push esi
call fcn.10c23360
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
mov eax, dword [ebx]
add ecx, 4
add esp, 0x14
inc edi
cmp edi, eax
mov dword [esp + 0x3c], ecx
jl 0x10c25870
mov eax, dword [esp + 0x48]
mov ecx, dword [ebx + 4]
inc eax
cmp eax, ecx
mov dword [esp + 0x48], eax
jl 0x10c25860
mov eax, dword [ebp + 0xc]
xor edi, edi
cmp eax, 0xd
mov dword [esp + 0x1c], edi
ja case.default.0x10c258ba
jmp dword [eax*4 + 0x10c2693c]
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c258d9
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c258d9
xor al, al
jmp 0x10c258dd
xor eax, eax
mov al, 1
mov edx, dword [esp + 0x34]
push eax
xor eax, eax
mov al, byte [esi + 0x23bb]
xor ecx, ecx
mov cl, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push eax
push ecx
call fcn.10c21b40
add esp, 0xc
mov ebx, dword [esp + 0x34]
mov edi, eax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c25f8b
mov eax, dword [esi + 0x2474]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
push edi
call dword [ebp + 0x10]
add esp, 0x18
jmp 0x10c25fa9
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c2594d
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c2594d
xor al, al
jmp 0x10c25951
xor eax, eax
mov al, 1
push eax
xor edx, edx
mov dl, byte [esi + 0x23bb]
xor eax, eax
mov al, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x3c]
push eax
call fcn.10c21c70
jmp 0x10c258fd
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c2598b
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c2598b
xor al, al
jmp 0x10c2598f
xor eax, eax
mov al, 1
xor ecx, ecx
mov cl, byte [esi + 0x23bb]
xor edx, edx
mov dl, byte [esi + 0x23ba]
push eax
lea ebx, [esp + 0x1c]
push ecx
push edx
mov edx, dword [esp + 0x40]
call fcn.10c21d60
jmp 0x10c258fd
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c259cc
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c259cc
xor al, al
jmp 0x10c259d0
xor eax, eax
mov al, 1
push eax
xor eax, eax
mov al, byte [esi + 0x23bc]
xor ecx, ecx
mov cl, byte [esi + 0x23bb]
xor edx, edx
mov dl, byte [esi + 0x23ba]
lea ebx, [esp + 0x1c]
push eax
push ecx
push edx
mov edx, dword [esp + 0x44]
call fcn.10c21a60
add esp, 0x10
jmp 0x10c25900
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 8]
mov edi, eax
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
add esp, 4
test eax, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25a40
mov ecx, dword [esp + 0x28]
jmp 0x10c25a40
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 4
and ecx, 0xf0
and edx, 0xf
or ecx, edx
mov edx, eax
shr eax, 0xc
shr edx, 0x10
and eax, 0xf00
and edx, 0xf000
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c25a37
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25ad5
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, eax
mov edx, eax
shr ecx, 6
shr edx, 3
and ecx, 0x3e0
and edx, 0x1f
or ecx, edx
mov edx, eax
shr eax, 9
shr edx, 0x10
and eax, 0x7c00
and edx, 0x8000
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c25ad1
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25b70
mov ecx, dword [esp + 0x28]
lea ebx, [ebx]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, eax
mov edx, eax
shr ecx, 6
and ecx, 0x3e0
shr eax, 9
shr edx, 3
and eax, 0x7c00
and edx, 0x1f
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c25b66
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov edx, dword [ebx + 8]
add esp, 4
test ecx, ecx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25bf4
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x28], edx
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 8
inc eax
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
inc eax
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
cmp dword [esp + 0x10], ecx
jl 0x10c25bf0
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov edx, dword [ebx + 8]
add esp, 4
test ecx, ecx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25c60
mov edx, dword [esp + 0x28]
jmp 0x10c25c60
mov ecx, dword [edx]
add edx, 4
mov dword [esp + 0x28], edx
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
shr ecx, 8
inc eax
mov byte [eax], cl
mov ecx, dword [esp + 0x10]
inc eax
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
cmp dword [esp + 0x10], ecx
jl 0x10c25c57
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 1
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
jmp 0x10c25cd0
mov ecx, dword [esp + 0x28]
jmp 0x10c25cd0
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x28], ecx
mov ecx, eax
mov edx, eax
shr ecx, 8
and ecx, 0xf800
shr eax, 3
shr edx, 5
and eax, 0x1f
and edx, 0x7e0
or ecx, edx
or ecx, eax
mov eax, dword [esp + 0x1c]
mov word [eax], cx
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10c25cc7
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
shl eax, 2
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov ecx, dword [ebx + 4]
imul ecx, dword [ebx]
mov esi, dword [ebx + 8]
shl ecx, 2
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add esp, 4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov edi, eax
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
lea eax, [eax + eax*2]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
add esp, 4
test edx, edx
mov edi, eax
mov dword [esp + 0x10], 0
jle case.default.0x10c258ba
mov dl, byte [ecx]
mov byte [eax], dl
mov dl, byte [ecx + 1]
mov byte [eax + 1], dl
mov dl, byte [ecx + 2]
inc eax
inc eax
mov byte [eax], dl
mov edx, dword [esp + 0x10]
inc eax
add ecx, 4
inc edx
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
cmp dword [esp + 0x10], edx
jl 0x10c25d90
jmp case.default.0x10c258ba
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
push eax
mov dword [esp + 0x1c], eax
call fcn.10ddedee
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
mov ecx, dword [ebx + 8]
mov edi, eax
add esp, 4
xor eax, eax
test edx, edx
jle case.default.0x10c258ba
add ecx, 3
lea ebx, [ebx]
mov dl, byte [ecx]
mov byte [edi + eax], dl
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
add ecx, 4
inc eax
cmp eax, edx
jl 0x10c25df0
jmp case.default.0x10c258ba
mov eax, dword [esi + 4]
cmp word [eax + 0x34], 3
mov eax, dword [esp + 0x44]
sete cl
test eax, eax
mov byte [esp + 0x8c], cl
mov edx, dword [esp + 0x8c]
push 0x100
push edx
mov edx, dword [ebx + 4]
lea ecx, [esp + 0xd8]
jne 0x10c25e58
xor eax, eax
mov al, byte [esi + 0x23b8]
push eax
mov eax, dword [ebx]
push 4
push 8
push ecx
mov ecx, dword [ebx + 8]
push 4
push edx
push eax
push ecx
call fcn.10c2dcf0
jmp 0x10c25e75
xor eax, eax
mov al, byte [esi + 0x23b8]
push eax
mov eax, dword [ebx]
push 4
push 8
push ecx
mov ecx, dword [ebx + 8]
push 4
push edx
push eax
push ecx
call fcn.10c2be80
mov edi, eax
mov eax, dword [ebx + 4]
imul eax, dword [ebx]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
add esp, 0x28
test eax, eax
jne case.default.0x10c258ba
cmp dword [esp + 0xdc], 3
mov ecx, dword [esp + 0xe0]
jne 0x10c25ef6
xor eax, eax
test ecx, ecx
jle 0x10c25f46
mov ecx, dword [esp + 0xe4]
add ecx, 4
jmp 0x10c25ec0
mov dl, byte [ecx + 4]
mov byte [esp + eax*4 + 0x5e2], dl
mov dl, byte [ecx]
mov byte [esp + eax*4 + 0x5e1], dl
mov dl, byte [ecx - 4]
mov byte [esp + eax*4 + 0x5e0], dl
mov edx, dword [esp + 0xe0]
mov byte [esp + eax*4 + 0x5e3], 0xff
inc eax
add ecx, 0xc
cmp eax, edx
jl 0x10c25ec0
jmp 0x10c25f46
xor eax, eax
test ecx, ecx
jle 0x10c25f46
mov ecx, dword [esp + 0xe4]
add ecx, 8
jmp 0x10c25f10
mov dl, byte [ecx - 8]
mov byte [esp + eax*4 + 0x5e2], dl
mov dl, byte [ecx - 4]
mov byte [esp + eax*4 + 0x5e1], dl
mov dl, byte [ecx]
mov byte [esp + eax*4 + 0x5e0], dl
mov dl, byte [ecx + 4]
mov byte [esp + eax*4 + 0x5e3], dl
mov edx, dword [esp + 0xe0]
inc eax
add ecx, 0x10
cmp eax, edx
jl 0x10c25f10
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10c25f75
mov eax, dword [esi + 0x2474]
push eax
push 0x100
push 4
push 0x400
lea ecx, [esp + 0x5f0]
push 0
push ecx
call dword [ebp + 0x10]
add esp, 0x18
jmp case.default.0x10c258ba
lea edx, [esp + 0x5e0]
push edx
push 0x400
push esi
call fcn.10c20ec0
add esp, 0xc
mov al, byte [esp + 0x17]
test al, al
push edi
je 0x10c25f9b
mov edx, dword [esp + 0x1c]
push edx
jmp 0x10c25fa0
mov eax, dword [esp + 0x1c]
push eax
push esi
call fcn.10c20ec0
add esp, 0xc
push edi
call fcn.10dde80a
mov ecx, dword [esp + 0x48]
mov al, byte [esi + 0x2332]
add esp, 4
inc ecx
cmp al, 1
mov dword [esp + 0x44], ecx
jne 0x10c25fd0
fld dword [esi + ecx*4 + 0x2334]
fstp dword [esp + 0x20]
fld dword [0x10e45008]
mov edi, dword [esp + 0x38]
cmp edi, 1
fsub dword [esp + 0x20]
fstp dword [esp + 0x10]
jg 0x10c25ff8
cmp dword [esp + 0x4c], 1
jg 0x10c25ff8
mov byte [esp + 0x43], 1
jmp 0x10c26809
cmp word [esi + 0x238a], 0x1f
jne 0x10c2606d
push ebx
call fcn.10c2c630
mov edx, dword [esi + 4]
movsx eax, word [edx + 0x34]
mov ebx, dword [esp + 0x5c]
imul eax, edi
mov ecx, dword [esp + 0x60]
add ebx, eax
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
mov eax, dword [esp + 0x50]
inc eax
cdq
sub eax, edx
sar eax, 1
push ecx
mov dword [esp + 0x60], ebx
mov ebx, eax
push ebx
push edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x5c], ebx
call fcn.10c2c600
mov edx, dword [esp + 0x6c]
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [esp + 0x6c]
push ecx
push edx
push ebx
push edi
push esi
push eax
mov dword [esp + 0x60], eax
call fcn.10c2c660
mov ebx, dword [esp + 0x60]
add esp, 0x2c
jmp 0x10c26164
mov eax, dword [ebx + 4]
cmp eax, 2
jle 0x10c2607e
cmp dword [ebx], 2
jg 0x10c26134
test eax, eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], 0
jle 0x10c26134
mov eax, dword [ebx]
mov ecx, dword [ebx + 8]
mov edx, eax
imul edx, dword [esp + 0x3c]
lea edi, [ecx + edx*4]
cmp dword [ebx + 4], 1
jne 0x10c260b0
mov dword [esp + 0x48], edi
jmp 0x10c260b7
lea edx, [edi + eax*4]
mov dword [esp + 0x48], edx
test eax, eax
mov dword [esp + 0x50], 0
jle 0x10c2611a
mov eax, dword [ebx]
cmp eax, 1
mov ecx, dword [esp + 0x48]
je 0x10c260d6
add ecx, 4
cmp eax, 1
jne 0x10c260da
mov eax, edi
jmp 0x10c260dd
lea eax, [edi + 4]
push ecx
mov ecx, dword [esp + 0x4c]
push ecx
push eax
push edi
push esi
call fcn.10c21890
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
mov dword [ecx], eax
mov eax, dword [esp + 0x64]
add ecx, 4
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx]
add eax, 2
add edx, 8
add esp, 0x14
add edi, 8
cmp eax, ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], edx
jl 0x10c260c3
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 4]
add eax, 2
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x10c26095
mov edi, dword [esp + 0x38]
mov eax, dword [ebx]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [ebx], eax
mov eax, dword [ebx + 4]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [ebx + 4], eax
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
inc eax
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x4c], eax
mov al, byte [esi + 0x2397]
test al, al
je 0x10c261d0
mov ecx, dword [ebx + 4]
xor eax, eax
test ecx, ecx
jle 0x10c261a5
mov ecx, 4
lea esp, [esp]
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
imul edx, eax
mov byte [edi + edx*4 + 3], 0
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
imul edx, ecx
mov byte [edx + edi - 1], 0
mov edx, dword [ebx + 4]
inc eax
add ecx, 4
cmp eax, edx
jl 0x10c26180
mov ecx, dword [ebx]
xor eax, eax
test ecx, ecx
jle 0x10c261d0
lea ecx, [ecx]
mov ecx, dword [ebx + 8]
mov byte [ecx + eax*4 + 3], 0
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 8]
dec edx
imul edx, dword [ebx]
add edx, eax
mov byte [ecx + edx*4 + 3], 0
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
jl 0x10c261b0
mov al, byte [esi + 0x2398]
test al, al
je 0x10c26282
xor eax, eax
lea edi, [esi + 0x239c]
mov edx, dword [ebx + 4]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x50], ecx
jle 0x10c26239
mov dword [esp + 0x3c], 4
jmp 0x10c26200
mov edx, dword [ebx]
imul edx, ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + edx*4]
mov cl, byte [edi]
mov byte [edx + eax], cl
mov edx, dword [ebx]
imul edx, dword [esp + 0x3c]
add edx, dword [ebx + 8]
mov cl, byte [edi]
mov byte [edx + eax - 4], cl
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
add edx, 4
inc ecx
mov dword [esp + 0x3c], edx
cmp ecx, dword [ebx + 4]
mov dword [esp + 0x50], ecx
jl 0x10c26200
mov edx, dword [ebx]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x3c], ecx
jle 0x10c26277
mov edx, dword [ebx + 8]
lea ecx, [edx + ecx*4]
mov dl, byte [edi]
mov byte [ecx + eax], dl
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x3c]
dec ecx
imul ecx, dword [ebx]
add ecx, edx
mov edx, dword [ebx + 8]
lea ecx, [edx + ecx*4]
mov dl, byte [edi]
mov byte [ecx + eax], dl
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebx]
inc ecx
cmp ecx, edx
mov dword [esp + 0x3c], ecx
jl 0x10c26245
inc eax
inc edi
cmp eax, 2
jle 0x10c261e6
mov eax, dword [esp + 0x44]
cmp eax, dword [esi + 0x23ac]
jl 0x10c2662d
mov al, byte [esi + 0x23a0]
test al, al
je 0x10c265b0
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c26450
mov al, byte [esi + 0x2373]
test al, al
jne 0x10c26450
mov al, byte [esi + 0x2396]
xor edx, edx
test al, al
mov eax, dword [ebx + 4]
je 0x10c26363
test eax, eax
jle 0x10c265b0
mov ecx, dword [ebx]
lea esp, [esp]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c26356
inc eax
movzx ecx, byte [eax + 1]
mov dword [esp + 0x28], ecx
inc edi
fild dword [esp + 0x28]
add eax, 4
fmul dword [0x10eac190]
fmul dword [esp + 0x20]
fmul dword [0x10e9366c]
fadd dword [0x10e4708c]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 3], cl
movzx ecx, byte [eax - 4]
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fmul dword [0x10eac190]
fmul dword [esp + 0x20]
fmul dword [0x10e9366c]
fadd dword [0x10e4708c]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 4], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c262f2
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c262e0
jmp 0x10c265b0
test eax, eax
jle 0x10c265b0
mov ecx, dword [ebx]
lea ecx, [ecx]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c2643f
jmp 0x10c26390
movzx ecx, byte [eax]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esi + 0x23a4]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ecx
fmul dword [esp + 0x20]
inc edi
fild dword [esp + 0x28]
add eax, 4
fmul dword [esp + 0x10]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 4], cl
movzx ecx, byte [eax - 3]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esi + 0x23a5]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ecx
fmul dword [esp + 0x20]
fild dword [esp + 0x28]
fmul dword [esp + 0x10]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 3], cl
movzx ecx, byte [eax - 2]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esi + 0x23a6]
fild dword [esp + 0x28]
mov dword [esp + 0x28], ecx
fmul dword [esp + 0x20]
fild dword [esp + 0x28]
fmul dword [esp + 0x10]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 2], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c26390
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c26370
jmp 0x10c265b0
mov eax, dword [ebx + 4]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x1c], ecx
jle 0x10c265b0
mov eax, dword [ebx]
mov edi, dword [ebx + 8]
mov edx, ecx
imul edx, eax
test eax, eax
lea edi, [edi + edx*4]
mov dword [esp + 0x50], 0
jle 0x10c265a0
mov edi, edi
mov eax, dword [edi]
test eax, 0xffffff
je 0x10c26586
movzx ecx, byte [edi + 2]
movzx edx, byte [edi + 1]
mov dword [esp + 0x28], ecx
and eax, 0xff
test eax, eax
fild dword [esp + 0x28]
mov dword [esp + 0x28], edx
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fild dword [esp + 0x28]
jge 0x10c264d4
fadd dword [0x10e52ea0]
fmul qword [0x10eac188]
movzx eax, byte [edi + 3]
mov dword [esp + 0x28], eax
fsub qword [0x10e470d8]
fstp qword [esp + 0x80]
fld dword [esp + 0x20]
fmul st(2)
fstp qword [esp + 0x70]
fld dword [esp + 0x20]
fmul st(1)
fstp qword [esp + 0x78]
fstp st(0)
fstp st(0)
fld dword [esp + 0x10]
fmul qword [esp + 0x80]
fst qword [esp + 0x80]
fmul qword [esp + 0x80]
fld qword [esp + 0x78]
fmul qword [esp + 0x78]
faddp st(1)
fld qword [esp + 0x70]
fmul qword [esp + 0x70]
faddp st(1)
fld st(0)
fabs
fcomp qword [0x10eac178]
fnstsw ax
test ah, 0x41
jne 0x10c26571
fsqrt
fdivr qword [0x10e470d8]
fld qword [esp + 0x70]
fmul st(1)
fstp qword [esp + 0x70]
fld qword [esp + 0x78]
fmul st(1)
fstp qword [esp + 0x78]
fmul qword [esp + 0x80]
fstp qword [esp + 0x80]
jmp 0x10c26573
fstp st(0)
push edi
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.10c21740
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [ebx]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x10c26480
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
inc ecx
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x10c26461
mov al, byte [esi + 0x23a1]
test al, al
je 0x10c2661e
mov eax, dword [ebx + 4]
xor edx, edx
test eax, eax
jle 0x10c2661e
mov ecx, dword [ebx]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c26616
add eax, 3
lea esp, [esp]
movzx ecx, byte [eax]
mov dword [esp + 0x28], ecx
inc edi
fild dword [esp + 0x28]
add eax, 4
fmul dword [esp + 0x20]
fild dword [esi + 0x23a8]
fmul dword [esp + 0x10]
faddp st(1)
fadd qword [0x10e4eb20]
fistp qword [esp + 0x28]
mov cl, byte [esp + 0x28]
mov byte [eax - 4], cl
mov ecx, dword [ebx]
cmp edi, ecx
jl 0x10c265e0
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c265c5
fld dword [esp + 0x20]
fmul dword [esp + 0xac]
fstp dword [esp + 0x20]
mov al, byte [esi + 0x2394]
test al, al
je 0x10c26689
mov eax, dword [ebx + 4]
xor edx, edx
test eax, eax
jle 0x10c26689
mov ecx, dword [ebx]
mov edi, dword [ebx + 8]
mov eax, edx
imul eax, ecx
lea eax, [edi + eax*4]
xor edi, edi
test ecx, ecx
jle 0x10c26681
add eax, 3
jmp 0x10c26660
movzx ecx, byte [eax]
cmp ecx, dword [esi + 0x23b4]
setl cl
dec cl
add eax, 4
and ecx, 0xff
mov byte [eax - 4], cl
mov ecx, dword [ebx]
inc edi
cmp edi, ecx
jl 0x10c26660
mov eax, dword [ebx + 4]
inc edx
cmp edx, eax
jl 0x10c26640
mov al, byte [esi + 0x2395]
test al, al
jne 0x10c266a1
mov al, byte [esi + 0x2373]
test al, al
je 0x10c26809
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x3c], 0
jle 0x10c26809
mov eax, dword [ebx]
mov edx, dword [esp + 0x3c]
mov ecx, dword [ebx + 8]
imul edx, eax
test eax, eax
lea edi, [ecx + edx*4]
mov dword [esp + 0x50], 0
jle 0x10c267f5
mov eax, dword [edi]
test eax, 0xffffff
je 0x10c267df
movzx edx, byte [edi + 2]
movzx ecx, byte [edi + 1]
mov dword [esp + 0x28], edx
and eax, 0xff
test eax, eax
fild dword [esp + 0x28]
mov dword [esp + 0x28], ecx
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fstp qword [esp + 0x90]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fmul qword [0x10eac188]
fsub qword [0x10e470d8]
fstp qword [esp + 0x98]
fild dword [esp + 0x28]
jge 0x10c26735
fadd dword [0x10e52ea0]
fmul qword [0x10eac188]
movzx edx, byte [edi + 3]
mov dword [esp + 0x28], edx
fsub qword [0x10e470d8]
fstp qword [esp + 0xa0]
fld qword [esp + 0x90]
fmul qword [esp + 0x90]
fld qword [esp + 0xa0]
fmul qword [esp + 0xa0]
faddp st(1)
fld qword [esp + 0x98]
fmul qword [esp + 0x98]
faddp st(1)
fld st(0)
fabs
fcomp qword [0x10eac178]
fnstsw ax
test ah, 0x41
jne 0x10c267c7
fsqrt
fdivr qword [0x10e470d8]
fld qword [esp + 0x90]
fmul st(1)
fstp qword [esp + 0x90]
fld qword [esp + 0x98]
fmul st(1)
fstp qword [esp + 0x98]
fld qword [esp + 0xa0]
fmul st(1)
fstp qword [esp + 0xa0]
push edi
fstp st(0)
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.10c21740
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [ebx]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x10c266d3
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 4]
inc eax
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x10c266b4
mov ax, word [esi + 0x238c]
test ax, ax
jle 0x10c2681e
movsx edx, ax
cmp dword [esp + 0x44], edx
jge 0x10c2682a
mov al, byte [esp + 0x43]
test al, al
je 0x10c25816
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x34]
inc eax
cmp eax, ecx
mov dword [esp + 0x54], eax
jl 0x10c25760
push edi
call fcn.10c2c630
mov eax, dword [esp + 0xe8]
add esp, 4
test eax, eax
je 0x10c26860
push eax
call fcn.10901b30
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x9ec]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x9e4]
call fcn.10ddeddf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret