Function at 0x101121d0
Capabilities:
Check for time delay via gettickcount
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x378
mov eax, dword [0x101945dc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x210], eax
mov eax, dword [ebx + 0x164]
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x298], ebx
mov dword [ebp - 0x1cc], edi
mov dword [ebp - 0x198], esi
mov dword [ebx + 0x168], eax
test edi, edi
jne 0x1011223e
mov edi, dword [ebx + 0x10c]
mov dword [ebp - 0x1cc], edi
test edi, edi
jne 0x1011223e
push 0xfffffffffffffff8
pop eax
jmp 0x10114549
mov ecx, ebx
call fcn.1004108e
mov dword [edi + 0x68], eax
xor ecx, ecx
mov eax, dword [ebp - 0x210]
test eax, eax
jne 0x1011227e
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x94], ecx
mov eax, dword [edi + 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [edi + 0x74]
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x94]
mov dword [ebp - 0x210], eax
cmp dword [ebx + 0x13c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x1d4], ecx
je 0x101122b0
test cl, 1
jne 0x101122b0
or dword [ebx + 0x158], 0x20000
mov ecx, ebx
push eax
push dword [ebp - 0x214]
call fcn.10038cdf
push 0xfffffffffffffffe
jmp 0x10112238
or dword [ebx + 0x158], 0x40000000
xor eax, eax
inc eax
shr ecx, 3
and ecx, eax
mov dword [ebp - 0x1b4], eax
mov eax, dword [ebx + 0x164]
mov dword [eax + 0xa4], ecx
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x290], eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x101144e5
cmp dword [0x101940e8], 0
jne 0x10112325
xor eax, eax
mov dword [0x101940f4], 0x3e8
mov ecx, 0x101940e8
mov dword [0x101940e8], eax
mov dword [0x101940f8], eax
mov dword [0x101940ec], eax
mov dword [0x101940fc], eax
mov byte [0x10194100], al
call fcn.10114b21
mov eax, dword [edi + 0x14]
mov dword [eax + 0x1c], esi
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebx + 0x164]
mov cl, al
xor eax, eax
test cl, cl
sete al
movzx edx, byte [esi + 0x11]
and edx, eax
mov eax, dword [ebx + 0x158]
shl edx, 0x19
and eax, 0xfdffffff
or edx, eax
cmp dword [ebx + 0x2a8], 0
mov dword [ebx + 0x158], edx
je 0x10112382
test dword [esi + 0x28], 0x80000
mov dword [ebp - 0x20c], 2
jne 0x1011238c
mov dword [ebp - 0x20c], 1
movss xmm0, dword [esi + 0x9c]
mov dl, 1
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0x20c]
movss dword [ebp - 0x228], xmm0
movsd xmm0, qword [0x10156238]
mov dword [ebp - 0x224], eax
xor eax, eax
movsd qword [ebp - 0x2c4], xmm0
movsd xmm0, qword [0x10156200]
mov byte [ebp - 0x1b9], dl
mov dword [ebp - 0x1b0], eax
movsd qword [ebp - 0x2d4], xmm0
cmp ecx, 1
jbe 0x10112411
test eax, eax
jle 0x10112411
mov eax, dword [ebx + 0x164]
push ebx
mov dword [eax + 0x14], 9
call fcn.10038cdf
pop ecx
mov ecx, ebx
call fcn.100bacf2
test al, al
jne 0x10112411
or dword [ebx + 0x15c], 1
and dword [edi + 0x84], 0xfffffffe
mov eax, dword [ebx]
push dword [ebp - 0x198]
push edi
mov esi, dword [eax + 0x34c]
mov ecx, esi
push ebx
call dword [0x10151b24]
call esi
cmp dword [ebp - 0x1b0], 1
jge 0x10112453
mov eax, dword [edi + 0x14]
push 0
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov dl, al
mov byte [ebp - 0x1b9], dl
jmp 0x10112459
mov dl, byte [ebp - 0x1b9]
test dl, dl
je 0x101144a4
mov eax, dword [ebx + 0x154]
test eax, eax
je 0x10112472
mov dword [eax + 0x4c], 1
mov ecx, ebx
call fcn.100bacf2
mov edx, dword [ebx + 0x158]
movzx ecx, al
mov eax, edx
shr eax, 8
and eax, 1
cmp eax, ecx
je 0x1011251e
mov eax, dword [ebx + 0xf4]
and edx, 0xfffffeff
and dword [ebp - 0x1a4], 0
shl ecx, 8
or ecx, edx
mov dword [ebx + 0x158], ecx
cmp dword [eax + 0x24], 0
jle 0x101124ff
mov edi, dword [ebp - 0x1a4]
mov eax, dword [ebx + 0xf4]
push edi
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, eax
mov eax, dword [ebx + 0x158]
shr eax, 6
xor eax, dword [ecx + 0x84]
and eax, 4
xor dword [ecx + 0x84], eax
inc edi
mov eax, dword [ebx + 0xf4]
cmp edi, dword [eax + 0x24]
jl 0x101124bc
mov edi, dword [ebp - 0x1cc]
or dword [edi + 0x80], 3
mov eax, dword [ebx]
push 0x3da6
push ebx
mov esi, dword [eax + 0xcc]
mov ecx, esi
call dword [0x10151b24]
call esi
test byte [edi + 0x84], 2
je 0x10112564
mov eax, dword [edi + 0x14]
push dword [edi + 0x78]
push dword [edi + 0x74]
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x5c]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
and dword [edi + 0x84], 0xfffffffd
push 0xb
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
jne 0x101144c7
mov eax, dword [edi + 0x14]
push 1
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
je 0x10112584
or dword [edi + 0x80], 4
mov ecx, dword [ebx + 0x158]
test ecx, 0x18000000
je 0x101125ad
mov eax, dword [ebx]
push 1
push ebx
mov esi, dword [eax + 0x344]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x158]
test byte [edi + 0x80], 3
jne 0x101125be
test ecx, 0x18000040
je 0x101125d8
mov eax, dword [ebx]
push edi
push ebx
mov esi, dword [eax + 0x340]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebx + 0x158]
mov eax, dword [ebx + 0x15c]
test al, 4
je 0x10112611
test ecx, 0x100
jne 0x10112608
mov eax, dword [ebx]
push 0x186
push ebx
mov esi, dword [eax + 0xcc]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x15c]
or eax, 4
mov dword [ebx + 0x15c], eax
mov eax, dword [edi + 0x80]
mov esi, dword [ebp - 0x198]
test al, 3
je 0x10112649
push esi
mov ecx, ebx
call fcn.10038cdf
test byte [ebp - 0x1d4], 0x20
jne 0x1011263c
push esi
push 1
mov ecx, ebx
call fcn.10038cdf
and dword [edi + 0x80], 0xfffffffd
mov eax, dword [edi + 0x80]
and eax, 0xffffffef
mov dword [edi + 0x80], eax
mov eax, dword [ebx]
push esi
push ebx
mov esi, dword [eax + 0x350]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx]
push 3
push ebx
mov esi, dword [eax + 0x19c]
mov ecx, esi
call dword [0x10151b24]
call esi
test dword [ebx + 0x158], 0x100
mov dword [ebp - 0x294], eax
jne 0x1011269d
cmp dword [ebp - 0x1b0], 0
jle 0x1011269d
or dword [edi + 0x80], 1
test byte [edi + 0x80], 5
jne 0x101126b3
test byte [ebp - 0x1d4], 0x10
je 0x101143e2
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x1d0], eax
test eax, eax
jns 0x101126cf
mov eax, dword [ebx + 0x164]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x14]
push 6
push eax
mov byte [ebp - 0x19a], 1
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x1d4]
and eax, 0x10
mov dword [ebp - 0x28c], eax
je 0x1011272e
mov eax, dword [edi + 0x14]
push 4
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
push 0xb
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
jne 0x10114174
cmp dword [ebp - 0x1b0], 1
jge 0x10112752
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x16c]
mov edx, dword [ecx]
push dword [eax]
push ecx
mov esi, dword [edx + 0x60]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
push 2
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x10114174
push dword [ebp - 0x198]
mov esi, dword [ebx]
and dword [ebx + 0x148], 0
push 0
push edi
mov esi, dword [esi + 0xc4]
mov ecx, esi
push ebx
call dword [0x10151b24]
call esi
mov dword [ebp - 0x1b4], eax
test eax, eax
js 0x10114174
mov esi, dword [ebp - 0x198]
test esi, esi
je 0x101127c5
push 2
mov ecx, esi
call fcn.10038cdf
test al, al
jne 0x101127c5
or eax, 0xffffffff
mov dword [ebp - 0x1b4], eax
jmp 0x10114174
cmp dword [ebp - 0x1b0], 0
jne 0x101127f4
mov eax, dword [ebx]
push edi
push ebx
mov esi, dword [eax + 0x3d4]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x101127ee
push edi
mov ecx, ebx
call fcn.10038cdf
mov esi, dword [ebp - 0x198]
mov eax, dword [ebx + 0x164]
push 0x2e
push 0
mov ebx, dword [eax + 0x28]
mov ecx, ebx
mov eax, 0x800
and ecx, eax
mov eax, ebx
or ecx, 0x2000
shl ecx, 0x10
mov edx, ecx
or edx, 0x40000000
and eax, 0x400
cmove edx, ecx
mov ecx, edx
or ecx, 0x10000000
and bl, 8
mov ebx, dword [ebp - 0x298]
cmove ecx, edx
mov edx, ecx
or edx, 0x80000000
mov eax, dword [ebx + 0x158]
and eax, 0x100
lea eax, [ebp - 0x208]
cmove edx, ecx
push eax
mov dword [ebp - 0x1a4], edx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebx + 0x154]
add esp, 0xc
test eax, eax
je 0x10112872
and dword [eax + 4], 0
mov byte [0x10194100], 0
xor eax, eax
mov ecx, dword [ebx + 0x164]
mov dword [ebp - 0x1c0], eax
cmp dword [ecx + 0x30], eax
je 0x101128e6
cmp byte [0x10194104], al
je 0x101128e6
cmp dword [ebx + 0x148], eax
jle 0x101128e6
inc eax
cmp dword [ecx + 0x34], eax
jge 0x101128ab
mov dword [ecx + 0x34], eax
mov ecx, dword [ebx + 0x164]
mov eax, 0x3e8
cdq
idiv dword [ecx + 0x34]
mov dword [0x101940f0], eax
push dword [ebx + 0x148]
push dword [ebx + 0x144]
call fcn.10115139
mov dword [ebp - 0x1c0], eax
pop ecx
pop ecx
test eax, eax
jne 0x101128e6
cmp dword [ebx + 0x148], eax
jle 0x101128e6
push 0xfffffffffffffff4
pop eax
jmp 0x101127ba
xor ecx, ecx
mov dword [ebp - 0x1b8], ecx
cmp dword [ebx + 0x148], ecx
jle 0x1011343e
xor edx, edx
mov dword [ebp - 0x1d8], edx
test eax, eax
je 0x1011290b
mov eax, dword [eax + ecx*8]
jmp 0x10112913
mov eax, dword [ebx + 0x144]
add eax, edx
mov byte [eax + 0xa0], 0
mov dword [ebp - 0x1a8], eax
mov dword [0x101940fc], ecx
test esi, esi
je 0x10112966
mov ecx, dword [ebx + 0x164]
cmp dword [ecx + 0x30], 0
je 0x10112947
cmp byte [0x10194104], 0
je 0x10112947
push ecx
push 0x10115070
jmp 0x1011294b
push 0
push 0
mov eax, dword [esi]
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
mov eax, dword [ebp - 0x1a8]
cmp dword [ebx + 0x33c], 2
je 0x10113653
and dword [ebp - 0x204], 0
xor edx, edx
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10112991
mov ecx, dword [ecx + 0x44]
shr ecx, 9
and ecx, 0xffffff01
jmp 0x10112993
xor cl, cl
mov eax, dword [ebx + 0x164]
mov dword [ebp - 0x1a0], ecx
cmp dword [eax + 0x30], edx
je 0x101129ee
cmp byte [0x10194104], dl
je 0x101129ee
cmp byte [0x10194100], dl
je 0x101129ee
test cl, cl
jne 0x101129ee
cmp dword [eax + 0x30], 2
je 0x101133e0
mov eax, dword [ebx]
push 0x3f3a38
push 3
push ebx
mov esi, dword [eax + 0x198]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x1a8]
mov ecx, ebx
push dword [eax + 8]
call fcn.10038cdf
mov edx, eax
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [ebx]
and dword [ebp - 0x204], 0
mov dword [ebp - 0x208], edx
push dword [ecx + 8]
mov esi, dword [eax + 0x3e8]
mov ecx, esi
push edi
push ebx
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0x1ee]
mov esi, dword [ebp - 0x1a8]
movzx eax, al
shl eax, 2
xor eax, ecx
and eax, 4
xor ecx, eax
mov eax, dword [ebx + 0x164]
mov dword [ebp - 0x1ee], ecx
and ecx, 0xfffffff4
mov edx, dword [eax + 0x28]
shr edx, 7
and edx, 8
mov dword [ebp - 0x1de], 1
or edx, ecx
mov dword [ebp - 0x1ee], edx
mov ax, word [esi + 0x8c]
and dword [ebp - 0x1e6], 0
mov word [ebp - 0x1f0], ax
mov dword [ebp - 0x1e2], 0x3f800000
mov eax, dword [esi + 8]
test dword [eax + 0x44], 0x200
je 0x10112a9e
mov eax, dword [ebx + 0x164]
mov ecx, 0x800
test word [eax + 0x2c], cx
je 0x10112a9e
mov eax, 0x80
jmp 0x10112aa0
xor eax, eax
and edx, 0xffffff7f
or edx, eax
cmp dword [ebx + 0x2a8], 0
mov dword [ebp - 0x1ee], edx
je 0x10112ac7
push esi
mov ecx, ebx
call fcn.10038cdf
test al, al
je 0x10112ac7
mov cl, 1
jmp 0x10112ac9
xor cl, cl
cmp byte [ebp - 0x1a0], 0
mov byte [ebp - 0x199], cl
je 0x10112af4
mov eax, dword [ebx + 0x164]
push 0
test dword [eax + 0x28], 0x40000
movzx eax, cl
pop ecx
cmovne eax, ecx
mov byte [ebp - 0x199], al
lea eax, [ebp - 0x199]
push eax
push dword [edi + 0x14]
push dword [esi + 8]
call fcn.10038cdf
add esp, 0xc
cmp byte [ebp - 0x199], 0
je 0x10112b33
mov eax, dword [edi + 0x14]
push 1
push 1
push 0x3ea
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov esi, dword [ebp - 0x1a8]
push dword [ebp - 0x198]
mov eax, dword [esi]
lea ecx, [esi + 0xc]
lea edx, [ebp - 0x208]
mov dword [ebp - 0x1a0], ecx
push edx
push ecx
mov ecx, dword [ebp - 0x1a8]
mov esi, dword [eax]
push dword [ecx + 8]
mov esi, dword [esi + 0xa0]
mov ecx, esi
push edi
push eax
call dword [0x10151b24]
call esi
cmp byte [ebp - 0x199], 0
mov dword [ebp - 0x1c4], eax
je 0x10112b99
mov ecx, dword [edi + 0x14]
push 1
push 0
push 0x3ea
mov esi, dword [ecx]
push ecx
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov eax, dword [ebp - 0x1c4]
cmp eax, 1
jne 0x101132ff
mov eax, dword [ebp - 0x1e6]
test eax, eax
je 0x101131db
mov ecx, dword [ebp - 0x1a8]
push dword [ebp - 0x198]
push 0
mov dword [ecx + 0x94], eax
mov eax, dword [ebp - 0x1f4]
mov dword [ecx + 0x90], eax
mov eax, dword [ecx]
movss xmm0, dword [ebp - 0x1e2]
movss dword [ecx + 0x9c], xmm0
lea ecx, [ebp - 0x2b0]
push ecx
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0xb4]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x1011311b
lea esi, [ebp - 0x2b0]
movss xmm0, dword [ebp - 0x2a4]
lea edi, [ebp - 0x27c]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x2e8]
push eax
movsd dword es:[edi], dword [esi]
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x2a4]
lea edi, [ebp - 0x270]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x2b0]
lea edi, [ebp - 0x220]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x220], xmm0
lea esi, [ebp - 0x220]
lea edi, [ebp - 0x24c]
movss xmm0, dword [ebp - 0x2a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x2b0]
movss dword [ebp - 0x248], xmm0
lea edi, [ebp - 0x234]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x2b0]
movss dword [ebp - 0x230], xmm0
lea edi, [ebp - 0x258]
movss xmm0, dword [ebp - 0x29c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x220]
movss dword [ebp - 0x250], xmm0
lea edi, [ebp - 0x264]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x234]
movss dword [ebp - 0x25c], xmm0
lea edi, [ebp - 0x288]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss dword [ebp - 0x280], xmm0
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x27c]
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x2f4]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x270]
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x300]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x220]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x24c]
movsd dword es:[edi], dword [esi]
push eax
lea eax, [ebp - 0x354]
push eax
push dword [ebp - 0x1a0]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x24c]
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x30c]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x234]
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x318]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x258]
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x324]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x264]
lea eax, [ebp - 0x288]
push eax
lea eax, [ebp - 0x330]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x1a0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10038cdf
movss xmm1, dword [ebp - 0x27c]
lea edi, [ebp - 0x288]
movss xmm0, dword [ebp - 0x278]
mov esi, eax
cvtps2pd xmm0, xmm0
movsd dword es:[edi], dword [esi]
cvtps2pd xmm1, xmm1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x1cc]
mov eax, dword [edi + 0x1c]
mulsd xmm0, qword [eax + 0x13c]
mulsd xmm1, qword [eax + 0x11c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x274]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x26c]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm2, xmm1
movss xmm1, dword [ebp - 0x270]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x274], xmm2
mulsd xmm0, qword [eax + 0x13c]
mulsd xmm1, qword [eax + 0x11c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x268]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm0, xmm1
movss xmm1, dword [ebp - 0x220]
movss dword [ebp - 0x268], xmm0
movss xmm0, dword [ebp - 0x21c]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [eax + 0x11c]
mulsd xmm0, qword [eax + 0x13c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x218]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x24c]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm3, xmm1
movss xmm1, dword [ebp - 0x248]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x218], xmm3
mulsd xmm0, qword [eax + 0x11c]
mulsd xmm1, qword [eax + 0x13c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x244]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x234]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm4, xmm1
movss xmm1, dword [ebp - 0x230]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x244], xmm4
mulsd xmm0, qword [eax + 0x11c]
mulsd xmm1, qword [eax + 0x13c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x22c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x258]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm5, xmm1
movss xmm1, dword [ebp - 0x254]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x22c], xmm5
mulsd xmm0, qword [eax + 0x11c]
mulsd xmm1, qword [eax + 0x13c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x250]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x264]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm6, xmm1
movss xmm1, dword [ebp - 0x260]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x250], xmm6
mulsd xmm0, qword [eax + 0x11c]
mulsd xmm1, qword [eax + 0x13c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x25c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x288]
cvtps2pd xmm0, xmm0
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm7, xmm1
movss xmm1, dword [ebp - 0x284]
cvtps2pd xmm1, xmm1
movss dword [ebp - 0x25c], xmm7
mulsd xmm1, qword [eax + 0x13c]
mulsd xmm0, qword [eax + 0x11c]
addsd xmm1, xmm0
mov edx, dword [ebp - 0x1a8]
movss xmm0, dword [ebp - 0x280]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax + 0x15c]
addsd xmm1, xmm0
movss xmm0, dword [ebp - 0x268]
comiss xmm0, xmm2
addsd xmm1, qword [eax + 0x17c]
cvtpd2ps xmm1, xmm1
jbe 0x101130aa
movss dword [edx + 0x98], xmm2
jmp 0x101130b5
movss dword [edx + 0x98], xmm0
movaps xmm2, xmm0
comiss xmm2, xmm3
jbe 0x101130c5
movss dword [edx + 0x98], xmm3
movaps xmm2, xmm3
comiss xmm2, xmm4
jbe 0x101130d5
movss dword [edx + 0x98], xmm4
movaps xmm2, xmm4
comiss xmm2, xmm5
jbe 0x101130e5
movss dword [edx + 0x98], xmm5
movaps xmm2, xmm5
comiss xmm2, xmm6
jbe 0x101130f5
movss dword [edx + 0x98], xmm6
movaps xmm2, xmm6
comiss xmm2, xmm7
jbe 0x10113105
movss dword [edx + 0x98], xmm7
movaps xmm2, xmm7
comiss xmm2, xmm1
jbe 0x101131c4
movss dword [edx + 0x98], xmm1
jmp 0x101131c4
mov eax, dword [ebp - 0x1a8]
lea edx, [ebp - 0x33c]
push edx
movsd xmm0, qword [eax + 0x6c]
movsd qword [ebp - 0x2cc], xmm0
movsd xmm0, qword [eax + 0x74]
movsd qword [ebp - 0x1c8], xmm0
movsd xmm0, qword [eax + 0x7c]
mov eax, dword [edi + 0x1c]
push eax
movsd qword [ebp - 0x2dc], xmm0
mov ecx, dword [eax]
mov esi, dword [ecx + 0x74]
mov ecx, esi
call dword [0x10151b24]
call esi
movsd xmm2, qword [ebp - 0x1c8]
movsd xmm1, qword [ebp - 0x2dc]
movsd xmm0, qword [ebp - 0x2cc]
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm1, xmm1
subss xmm2, dword [eax + 4]
subss xmm1, dword [eax + 8]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [eax]
lea eax, [ebp - 0x2bc]
movss dword [ebp - 0x2b8], xmm2
push eax
movss dword [ebp - 0x2b4], xmm1
movss dword [ebp - 0x2bc], xmm0
call fcn.10038cdf
mov edx, dword [ebp - 0x1a8]
fstp dword [edx + 0x98]
mov eax, dword [ebx + 0x2c0]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x30]
mov ecx, esi
call dword [0x10151b24]
call esi
lea eax, [ebp - 0x199]
push eax
mov eax, dword [ebp - 0x1a8]
push dword [edi + 0x14]
push dword [eax + 8]
call fcn.10038cdf
add esp, 0xc
cmp byte [ebp - 0x199], 0
je 0x1011321a
mov eax, dword [edi + 0x14]
push 1
push 1
push 0x3ea
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x204], 1
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0xa4]
test edx, edx
je 0x10113254
mov eax, dword [edi + 0x14]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x50]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [eax + 8]
push dword [ebp - 0x198]
mov eax, dword [eax]
lea edx, [ebp - 0x208]
push edx
push dword [ebp - 0x1a0]
mov esi, dword [eax]
push ecx
push edi
push eax
mov esi, dword [esi + 0xa4]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0x1a8]
mov byte [esi + 0xa0], 1
cmp eax, 0xfffffff4
je 0x10113418
or ecx, 0xffffffff
cmp eax, ecx
jne 0x101132b7
push dword [ebp - 0x198]
lea eax, [ebp - 0x208]
mov ecx, ebx
push eax
push esi
push edi
call fcn.10038cdf
mov dword [ebp - 0x1b4], eax
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x101132d9
mov eax, dword [edi + 0x14]
neg ecx
push ecx
push eax
mov esi, dword [eax]
mov ecx, dword [esi + 0x50]
call dword [0x10151b24]
call dword [esi + 0x50]
cmp byte [ebp - 0x199], 0
je 0x10113348
mov eax, dword [edi + 0x14]
push 1
push 0
push 0x3ea
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
jmp 0x10113348
cmp eax, 0xfffffff4
je 0x10113418
or ecx, 0xffffffff
cmp eax, ecx
jne 0x10113348
mov esi, dword [ebp - 0x198]
mov dword [ebp - 0x1b4], ecx
mov ecx, esi
push 2
call fcn.10038cdf
test al, al
je 0x1011414f
push esi
lea eax, [ebp - 0x208]
mov ecx, ebx
push eax
push dword [ebp - 0x1a8]
push edi
call fcn.10038cdf
mov dword [ebp - 0x1b4], eax
mov ecx, dword [ebp - 0x198]
test ecx, ecx
je 0x10113384
mov eax, dword [ebx + 0x164]
cmp dword [eax + 0xa4], 0
je 0x10113384
mov esi, dword [ecx]
push 0
push dword [ebx + 0x148]
push dword [ebp - 0x1b8]
push ecx
mov ecx, dword [esi + 0xc]
call dword [0x10151b24]
call dword [esi + 0xc]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x164]
cmp dword [eax + 0x30], 0
je 0x101133c3
cmp byte [0x10194104], 0
je 0x101133c3
mov ecx, 0x101940e8
call fcn.10114b4d
test al, al
je 0x101133e0
mov eax, dword [ebx]
push 0x3f3a38
push 3
push ebx
mov esi, dword [eax + 0x198]
mov ecx, esi
call dword [0x10151b24]
call esi
jmp 0x101133e0
test ecx, ecx
je 0x101133e0
mov eax, dword [ecx]
push 0
push 0
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
mov ecx, dword [ebp - 0x1b8]
mov edx, dword [ebp - 0x1d8]
inc ecx
add edx, 0xa4
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x1d8], edx
cmp ecx, dword [ebx + 0x148]
jge 0x1011343e
mov esi, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1c0]
jmp 0x10112902
mov ecx, dword [ebp - 0x198]
push 0xfffffffffffffff4
pop eax
mov dword [ebp - 0x1b4], eax
mov eax, dword [ecx]
push 4
push ecx
mov esi, dword [eax + 0x20]
mov ecx, esi
call dword [0x10151b24]
call esi
jmp 0x1011414f
cmp dword [ebx + 0x33c], 2
je 0x10113653
cmp dword [ebp - 0x1b0], 0
jne 0x10113653
mov eax, dword [ebx]
push edi
push ebx
mov esi, dword [eax + 0x3e4]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x10113494
test dword [ebx + 0x158], 0x1000000
jne 0x10113494
mov eax, dword [ebx + 0x16c]
mov ecx, edi
push 2
push dword [eax + 4]
lea eax, [ebx + 0x74]
push eax
push 0
call fcn.10038cdf
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x101134b3
cmp eax, 3
je 0x101134b3
push eax
push edi
mov ecx, ebx
call fcn.10111be3
mov byte [ebp - 0x19a], 0
cmp dword [ebx + 0x2a8], 0
je 0x10113653
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x101134e3
mov ecx, eax
call fcn.100bd51e
test al, al
jne 0x101134e3
or eax, 0xffffffff
mov dword [ebp - 0x1b4], eax
jmp 0x10113653
mov eax, dword [ebx + 0x2ac]
test eax, eax
jne 0x10113502
mov ecx, ebx
call fcn.100e5ebd
mov eax, dword [ebx + 0x2ac]
test eax, eax
je 0x10113653
push dword [ebp - 0x198]
mov esi, dword [eax]
lea ecx, [ebp - 0x36c]
push 0
push ecx
push eax
mov esi, dword [esi + 0xb4]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x10113653
mov eax, dword [edi + 0x1c]
lea ecx, [ebp - 0x36c]
push 1
push ecx
push 0
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x14]
call dword [0x10151b24]
call dword [esi + 0x14]
mov ecx, dword [ebx + 0x2ac]
mov word [ecx + 0x138], ax
mov eax, 0x4000
mov ecx, dword [ebx + 0x2ac]
test word [ecx + 0x138], ax
jne 0x10113653
mov eax, dword [ecx]
push dword [ebp - 0x1a4]
push 6
mov esi, dword [eax + 0x98]
push ecx
mov ecx, esi
call dword [0x10151b24]
call esi
or eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1c4], eax
lea eax, [ebp - 0x114]
push eax
call fcn.10038cdf
test dword [ebx + 0x158], 0x100
jne 0x101135c0
mov ecx, dword [ebx + 0x2ac]
lea eax, [ebp - 0x114]
push eax
push edi
call fcn.10038cdf
mov eax, dword [ebx + 0x2ac]
lea ecx, [ebp - 0x114]
push 0
push dword [ebp - 0x198]
mov esi, dword [eax]
push edi
push ecx
push dword [ebp - 0x1c4]
mov esi, dword [esi + 0x8c]
mov ecx, esi
push eax
call dword [0x10151b24]
call esi
mov dword [ebp - 0x1c4], eax
test eax, eax
jns 0x1011363a
mov ecx, dword [ebx + 0x28]
push eax
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x338]
mov ecx, esi
call dword [0x10151b24]
call esi
cmp dword [ebp - 0x1c4], 0xfffffff4
jne 0x1011363a
mov ecx, dword [ebp - 0x198]
push 0xfffffffffffffff4
pop eax
mov dword [ebp - 0x1b4], eax
mov eax, dword [ecx]
push 4
push ecx
mov esi, dword [eax + 0x20]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
push dword [ebx + 0x2ac]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x58]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x10113676
mov eax, dword [eax]
push 0
push 0
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
cmp dword [ebx + 0x33c], 1
mov esi, dword [ebp - 0x1b0]
je 0x10113748
test esi, esi
jne 0x10113748
cmp dword [ebx + 0x2c4], esi
je 0x10113748
mov eax, dword [ebx]
push edi
push ebx
mov esi, dword [eax + 0x3d0]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x10113742
mov ecx, dword [ebx + 0x2c4]
xor edx, edx
mov dword [ebp - 0x1a4], edx
cmp dword [ecx + 0x24], edx
jle 0x10113742
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
push 7
push eax
mov dword [ebp - 0x1c4], eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xf0]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, eax
mov eax, dword [ebp - 0x1c4]
test byte [eax + 0x44], 1
jne 0x1011372a
test dword [ecx + 0x50], 0x200
jne 0x1011372a
push dword [ebp - 0x198]
mov esi, dword [ecx]
push eax
push edi
push ecx
mov esi, dword [esi + 0x124]
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebx + 0x2c4]
inc edx
mov dword [ebp - 0x1a4], edx
cmp edx, dword [ecx + 0x24]
jl 0x101136cc
mov esi, dword [ebp - 0x1b0]
mov eax, dword [ebx + 0x2c0]
cmp dword [eax + 0x24], 0
je 0x10113bfc
cmp dword [ebx + 0x33c], 2
je 0x10113bfc
mov ecx, ebx
call fcn.10038cdf
test esi, esi
jne 0x101138c2
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x101138c2
cmp byte [ebp - 0x19a], 0
je 0x101138c2
cmp dword [ebx + 0x2a8], esi
je 0x101137ac
push eax
push edi
mov ecx, ebx
call fcn.10111be3
mov byte [ebp - 0x19a], 0
jmp 0x101138c2
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0x194]
push 1
push ecx
push eax
mov esi, dword [eax]
mov esi, dword [esi + 0x9c]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0xc]
push 4
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xf0]
mov ecx, esi
call dword [0x10151b24]
call esi
test eax, eax
je 0x10113803
mov ecx, dword [eax]
lea edx, [ebp - 0x240]
push edx
push eax
mov esi, dword [ecx + 0xe4]
mov ecx, esi
call dword [0x10151b24]
call esi
jmp 0x10113828
mov eax, dword [edi + 0x1c]
lea edx, [ebp - 0x348]
push edx
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x74]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, eax
lea edi, [ebp - 0x240]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x378]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.10038cdf
mov esi, eax
lea edi, [ebp - 0x240]
movzx eax, byte [ebx + 0x349]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub eax, 0
je 0x10113898
sub eax, 1
je 0x10113887
sub eax, 3
je 0x10113879
sub eax, 1
jne 0x101138bc
movss xmm0, dword [ebx + 0x84]
comiss xmm0, dword [ebp - 0x23c]
jmp 0x101138a4
movss xmm0, dword [ebp - 0x23c]
comiss xmm0, dword [ebx + 0x78]
jmp 0x101138a4
movss xmm0, dword [ebx + 0x88]
comiss xmm0, dword [ebp - 0x238]
jmp 0x101138a4
movss xmm0, dword [ebp - 0x238]
comiss xmm0, dword [ebx + 0x7c]
mov edi, dword [ebp - 0x1cc]
seta al
test al, al
je 0x101138c2
mov eax, dword [ebp - 0x1d0]
jmp 0x10113797
mov edi, dword [ebp - 0x1cc]
push 0x2e
lea eax, [ebp - 0x208]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebx + 0x2c0]
xor edx, edx
add esp, 0xc
mov dword [ebp - 0x1b8], edx
cmp dword [ecx + 0x24], edx
jle 0x10113bec
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
push 2
pop edx
mov dword [ebp - 0x204], edx
mov ecx, dword [eax + 0x90]
or dword [ebp - 0x1ee], edx
mov dword [ebp - 0x1f4], ecx
movss xmm0, dword [eax + 0x9c]
mov ecx, dword [ebx]
movss dword [ebp - 0x1f8], xmm0
push dword [eax + 8]
mov dword [ebp - 0x1a0], eax
mov esi, dword [ecx + 0x3e8]
mov ecx, esi
push edi
push ebx
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0x1ee]
mov esi, dword [ebp - 0x1a0]
movzx eax, al
shl eax, 2
xor eax, ecx
and eax, 4
xor ecx, eax
mov eax, dword [ebx + 0x164]
mov dword [ebp - 0x1ee], ecx
mov edx, dword [eax + 0x28]
shr edx, 7
xor edx, ecx
and edx, 8
xor edx, ecx
mov ecx, dword [ebx + 0x164]
or edx, 1
mov dword [ebp - 0x1ee], edx
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x208], eax
mov eax, dword [esi + 8]
test dword [eax + 0x44], 0x200
je 0x101139b0
mov eax, 0x800
test word [ecx + 0x2c], ax
je 0x101139b0
mov eax, 0x80
jmp 0x101139b2
xor eax, eax
and edx, 0xffffff7f
or edx, eax
mov dword [ebp - 0x1ee], edx
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x2a8]
jne 0x101139d8
cmp dword [ebp - 0x1b0], 0
jg 0x10113bd0
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x10113a16
xor edx, edx
cmp dword [ecx + 0x30], edx
je 0x101139f9
cmp byte [0x10194104], dl
je 0x101139f9
push ecx
push 0x10115070
jmp 0x101139fb
push edx
push edx
mov eax, dword [eax]
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
mov esi, dword [ebp - 0x1a0]
mov eax, dword [ebx + 0x164]
cmp dword [eax + 0x30], 0
je 0x10113aad
cmp byte [0x10194104], 0
je 0x10113aad
mov eax, dword [ebx + 0x148]
mov ecx, 0x101940e8
add eax, dword [ebp - 0x1b8]
mov dword [0x101940fc], eax
call fcn.10114b4d
test al, al
je 0x10113aad
mov eax, dword [ebx]
push 0x3f3a38
push 3
push ebx
mov esi, dword [eax + 0x198]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0x1a0]
cmp dword [esi + 0x94], 2
je 0x10113aad
mov ecx, dword [esi + 8]
cmp ecx, dword [ebx + 0x2a8]
je 0x10113aad
mov eax, dword [ebx + 0x164]
cmp dword [eax + 0x30], 2
je 0x10113bd0
push ecx
mov ecx, ebx
call fcn.10038cdf
mov dword [ebp - 0x208], eax
mov dword [esi + 0x94], eax
and dword [ebp - 0x1ee], 0xfffffffe
cmp dword [ebx + 0x2a8], 0
je 0x10113ac6
push esi
mov ecx, ebx
call fcn.10038cdf
test al, al
je 0x10113ac6
mov al, 1
jmp 0x10113ac8
xor al, al
mov byte [ebp - 0x1a9], al
lea eax, [ebp - 0x1a9]
push eax
push dword [edi + 0x14]
push dword [esi + 8]
call fcn.10038cdf
add esp, 0xc
cmp byte [ebp - 0x1a9], 0
je 0x10113b0d
mov eax, dword [edi + 0x14]
push 1
push 1
push 0x3ea
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov esi, dword [ebp - 0x1a0]
mov edx, dword [esi + 8]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x1c4], eax
test eax, eax
je 0x10113b42
mov eax, dword [edi + 0x14]
push dword [ebp - 0x1c4]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x50]
mov ecx, esi
call dword [0x10151b24]
call esi
mov esi, dword [ebp - 0x1a0]
mov edx, dword [esi + 8]
push dword [ebp - 0x198]
mov ecx, dword [esi]
lea eax, [ebp - 0x208]
push eax
mov eax, dword [ebp - 0x1a0]
add eax, 0xc
mov esi, dword [ecx]
push eax
push edx
push edi
mov esi, dword [esi + 0xa4]
push ecx
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, dword [ebp - 0x1b4]
or edx, 0xffffffff
cmp eax, edx
mov eax, dword [ebp - 0x1a0]
cmove ecx, edx
mov dword [ebp - 0x1b4], ecx
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x10113bac
mov eax, dword [edi + 0x14]
neg ecx
push ecx
push eax
mov esi, dword [eax]
mov ecx, dword [esi + 0x50]
call dword [0x10151b24]
call dword [esi + 0x50]
cmp byte [ebp - 0x1a9], 0
je 0x10113bd0
mov eax, dword [edi + 0x14]
push 1
push 0
push 0x3ea
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebx + 0x2c0]
inc edx
mov dword [ebp - 0x1b8], edx
cmp edx, dword [ecx + 0x24]
jl 0x101138ec
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x28]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x10113c1f
mov eax, dword [eax]
push 0
push 0
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
cmp dword [ebp - 0x1b0], 0
jle 0x10113c2f
push ebx
call fcn.10038cdf
pop ecx
cmp dword [ebx + 0x33c], 1
je 0x10113cee
cmp dword [ebx + 0x2c4], 0
je 0x10113cee
mov eax, dword [ebx]
push edi
push ebx
mov esi, dword [eax + 0x3d0]
mov ecx, esi
call dword [0x10151b24]
call esi
test al, al
je 0x10113cee
mov ecx, dword [ebx + 0x2c4]
xor edx, edx
mov dword [ebp - 0x1a4], edx
cmp dword [ecx + 0x24], edx
jle 0x10113cee
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
push 7
push eax
mov dword [ebp - 0x1c4], eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xf0]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, eax
mov eax, dword [ebp - 0x1c4]
test byte [eax + 0x44], 1
jne 0x10113cd6
test dword [ecx + 0x50], 0x200
je 0x10113cd6
push dword [ebp - 0x198]
mov esi, dword [ecx]
push eax
push edi
push ecx
mov esi, dword [esi + 0x124]
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebx + 0x2c4]
inc edx
mov dword [ebp - 0x1a4], edx
cmp edx, dword [ecx + 0x24]
jl 0x10113c78
mov eax, dword [ebx + 0x164]
test dword [eax + 0x28], 0x200000
je 0x10113ed1
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x1c4], eax
mov eax, dword [edi + 0x14]
push 1
push 0
push 0x3e9
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
xor eax, eax
mov dword [ebp - 0x1a4], eax
cmp dword [ebx + 0x148], eax
jle 0x10113eaa
mov ecx, dword [ebp - 0x1c0]
xor edx, edx
mov dword [ebp - 0x1a0], edx
test ecx, ecx
je 0x10113d53
mov eax, dword [ecx + eax*8]
jmp 0x10113d5b
mov eax, dword [ebx + 0x144]
add eax, edx
mov dword [ebp - 0x1b8], eax
test eax, eax
je 0x10113e85
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10113e7f
mov ecx, dword [ecx + 0x70]
test ecx, ecx
je 0x10113e7f
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 0x40]
mov ecx, esi
call dword [0x10151b24]
call esi
cmp eax, 1
jne 0x10113e79
mov esi, dword [ebp - 0x1b8]
mov ecx, dword [esi + 8]
call fcn.10015e08
push 4
pop ecx
cmp eax, ecx
jne 0x10113e79
mov dword [ebp - 0x204], 3
mov eax, dword [esi + 0x90]
or dword [ebp - 0x1ee], 2
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebx]
mov dword [ebp - 0x208], ecx
movss xmm0, dword [esi + 0x9c]
movss dword [ebp - 0x1f8], xmm0
push dword [esi + 8]
mov esi, dword [eax + 0x3e8]
mov ecx, esi
push edi
push ebx
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0x1b8]
movzx ecx, al
mov eax, dword [ebp - 0x1ee]
and ecx, 1
and eax, 0xfffffff2
shl ecx, 2
or ecx, eax
mov dword [ebp - 0x1ee], ecx
mov eax, dword [edx + 8]
test dword [eax + 0x44], 0x200
je 0x10113e3f
mov eax, dword [ebx + 0x164]
mov esi, 0x800
test word [eax + 0x2c], si
je 0x10113e3f
mov eax, 0x80
jmp 0x10113e41
xor eax, eax
push dword [ebp - 0x198]
and ecx, 0xffffff7f
or ecx, eax
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1ee], ecx
mov ecx, dword [edx]
push eax
lea eax, [edx + 0xc]
push eax
mov esi, dword [ecx]
push dword [edx + 8]
push edi
mov esi, dword [esi + 0xa4]
push ecx
mov ecx, esi
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1a4]
add edx, 0xa4
inc eax
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x1a4], eax
cmp eax, dword [ebx + 0x148]
jl 0x10113d4a
mov eax, dword [edi + 0x14]
push 1
push 1
push 0x3e9
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x1c4], eax
mov eax, dword [edi + 0x14]
push 1
push 0
push 0x3e9
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
cmp dword [ebx + 0x33c], 2
je 0x10114077
xor eax, eax
mov dword [ebp - 0x1d8], eax
cmp dword [ebx + 0x148], eax
jle 0x10114077
xor edx, edx
mov dword [ebp - 0x1b8], edx
mov ecx, dword [ebp - 0x1c0]
test ecx, ecx
je 0x10113f30
mov ecx, dword [ecx + eax*8]
jmp 0x10113f38
mov ecx, dword [ebx + 0x144]
add ecx, edx
cmp byte [ecx + 0xa0], 0
mov dword [ebp - 0x1a4], ecx
je 0x10114077
mov esi, dword [ecx + 8]
test esi, esi
je 0x10114058
mov esi, dword [esi + 0xa8]
test esi, 0x4000
je 0x10113f6a
cmp dword [edi + 0x68], 0xffffffff
je 0x10113f80
test esi, 0x10000000
je 0x10114058
cmp dword [edi + 0x68], 1
jne 0x10114058
mov dword [ebp - 0x204], 4
mov eax, dword [ecx + 0x90]
or dword [ebp - 0x1ee], 2
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebx]
mov dword [ebp - 0x208], 8
movss xmm0, dword [ecx + 0x9c]
movss dword [ebp - 0x1f8], xmm0
push dword [ecx + 8]
mov esi, dword [eax + 0x3e8]
mov ecx, esi
push edi
push ebx
call dword [0x10151b24]
call esi
mov edx, dword [ebp - 0x1a4]
movzx ecx, al
mov eax, dword [ebp - 0x1ee]
and ecx, 1
and eax, 0xfffffff2
shl ecx, 2
or ecx, eax
mov dword [ebp - 0x1ee], ecx
mov eax, dword [edx + 8]
test dword [eax + 0x44], 0x200
je 0x10114012
mov eax, dword [ebx + 0x164]
mov esi, 0x800
test word [eax + 0x2c], si
je 0x10114012
mov eax, 0x80
jmp 0x10114014
xor eax, eax
push dword [ebp - 0x198]
and ecx, 0xffffff7f
or ecx, eax
lea eax, [ebp - 0x208]
mov dword [ebp - 0x1ee], ecx
mov ecx, dword [edx]
push eax
lea eax, [edx + 0xc]
push eax
mov esi, dword [ecx]
push dword [edx + 8]
push edi
mov esi, dword [esi + 0xa4]
push ecx
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1b8]
inc eax
add edx, 0xa4
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1b8], edx
cmp eax, dword [ebx + 0x148]
jl 0x10113f21
mov eax, dword [edi + 0x14]
push 1
push 1
push 0x3e9
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x204], eax
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x101140ca
cmp byte [ebp - 0x19a], 0
je 0x101140ca
cmp dword [ebx + 0x33c], 2
je 0x101140ca
push eax
push edi
mov ecx, ebx
call fcn.10111be3
mov byte [ebp - 0x19a], 0
mov eax, dword [ebx + 0x114]
test eax, eax
je 0x1011414f
cmp dword [eax], 0
je 0x1011414f
push edi
mov ecx, ebx
call fcn.10038cdf
mov ecx, dword [ebx + 0x2b8]
test ecx, ecx
je 0x1011414f
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x1011414f
xor edx, edx
mov dword [ebp - 0x1a4], edx
test eax, eax
jle 0x1011414f
mov eax, dword [ebx + 0x114]
push dword [eax]
mov eax, dword [ecx]
push edx
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x10151b24]
call esi
push eax
push edi
mov ecx, ebx
call fcn.10038cdf
mov eax, dword [ebx + 0x2b8]
cmp dword [eax + 0x24], 1
jle 0x10114137
mov ecx, ebx
call fcn.10105ad9
test al, al
jne 0x1011414f
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebx + 0x2b8]
inc edx
mov dword [ebp - 0x1a4], edx
cmp edx, dword [ecx + 0x24]
jl 0x101140fe
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x10114174
cmp byte [ebp - 0x19a], 0
je 0x10114174
cmp dword [ebx + 0x33c], 2
je 0x10114174
push eax
push edi
mov ecx, ebx
call fcn.10111be3
cmp byte [0x107d1610], 0
je 0x10114184
push ebx
call fcn.10038cdf
pop ecx
mov eax, dword [ebx + 0x164]
mov ecx, dword [ebp - 0x224]
movss xmm0, dword [ebp - 0x228]
mov dword [eax + 0x14], ecx
mov eax, dword [ebx + 0x164]
movss dword [eax + 0x9c], xmm0
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x101141cc
mov eax, dword [eax]
push 0
push 0
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
mov eax, dword [ebx]
push dword [ebp - 0x294]
push 3
mov esi, dword [eax + 0x198]
mov ecx, esi
push ebx
call dword [0x10151b24]
call esi
test byte [ebp - 0x1d4], 0x20
jne 0x10114347
push dword [ebp - 0x198]
mov ecx, ebx
push 0
call fcn.10038cdf
test byte [ebx + 0x158], 0x10
jne 0x10114347
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x290]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101562b0]
mov eax, dword [ebx + 0x328]
cvtpd2ps xmm0, xmm0
movss dword [ebx + eax*4 + 0x2d8], xmm0
mov edx, dword [ebx + 0x328]
mov ecx, dword [ebx + 0x32c]
inc edx
mov dword [ebx + 0x328], edx
mov eax, ecx
cmp ecx, 0x14
jge 0x10114265
inc ecx
mov dword [ebx + 0x32c], ecx
mov eax, ecx
cmp edx, 0x14
jne 0x10114271
and dword [ebx + 0x328], 0
lea edx, [ebx + 0x198]
xorps xmm2, xmm2
and dword [edx], 0
xorps xmm1, xmm1
test ecx, ecx
jle 0x101142a4
lea ecx, [ebx + 0x2d8]
movss xmm1, dword [ecx]
add ecx, 4
addss xmm1, dword [edx]
movss dword [edx], xmm1
sub eax, 1
jne 0x1011428a
mov eax, dword [ebx + 0x32c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, xmm2
movss dword [edx], xmm1
jbe 0x101142c9
movss xmm0, dword [0x1015ff5c]
divss xmm0, xmm1
movaps xmm1, xmm0
jmp 0x101142da
movss xmm1, dword [0x1015f624]
lea edx, [ebx + 0x198]
movaps xmm0, xmm1
cvtps2pd xmm0, xmm0
push ecx
push ecx
movss dword [edx], xmm1
mulsd xmm0, qword [ebp - 0x2c4]
addsd xmm0, qword [ebp - 0x2d4]
cvttsd2si eax, xmm0
movd xmm0, eax
lea eax, [ebp - 0x84]
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1015f624]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x90e
push eax
call fcn.10038cdf
mov eax, dword [ebp - 0x198]
add esp, 0x10
test eax, eax
je 0x10114347
mov esi, dword [eax]
lea ecx, [ebp - 0x84]
push ecx
push 1
push eax
mov ecx, dword [esi + 0x18]
call dword [0x10151b24]
call dword [esi + 0x18]
add esp, 0xc
and dword [edi + 0x80], 0xfffffffa
cmp dword [ebp - 0x28c], 0
je 0x1011436c
mov eax, dword [edi + 0x14]
push 5
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebp - 0x1b4]
cmp eax, 0xfffffff4
je 0x101143cd
cmp dword [ebx + 0x33c], 2
je 0x101143cd
test byte [ebp - 0x1d4], 0x80
jne 0x10114392
push eax
push edi
mov ecx, ebx
call fcn.10038cdf
mov ecx, dword [ebx + 0x338]
test ecx, ecx
jle 0x101143ba
mov eax, dword [edi + 0x14]
push 0xff000000
push ecx
push 0
mov esi, dword [eax]
push eax
mov esi, dword [esi + 0x84]
mov ecx, esi
call dword [0x10151b24]
call esi
mov ecx, ebx
call fcn.1001f0f9
test eax, eax
je 0x101143cd
push edi
mov ecx, ebx
call fcn.10038cdf
mov eax, dword [edi + 0x14]
push 3
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [ebx + 0x164]
mov ecx, dword [ebp - 0x224]
movss xmm0, dword [ebp - 0x228]
mov dword [eax + 0x14], ecx
mov eax, dword [ebx + 0x164]
movss dword [eax + 0x9c], xmm0
mov eax, dword [ebp - 0x20c]
dec eax
cmp dword [ebp - 0x1b0], eax
jne 0x101144a4
mov esi, dword [ebp - 0x214]
test esi, esi
je 0x10114455
mov eax, dword [ebp - 0x198]
test eax, eax
je 0x1011443b
push 2
mov ecx, eax
call fcn.10038cdf
test al, al
je 0x10114455
mov eax, dword [edi + 0x14]
push dword [ebp - 0x210]
push esi
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 0x64]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
push 1
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0x54]
mov ecx, esi
call dword [0x10151b24]
call esi
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov esi, dword [ebp - 0x198]
mov dword [eax + 0x1c], ecx
test esi, esi
je 0x101144aa
mov eax, dword [ebx + 0x164]
cmp dword [eax + 0xa4], ecx
je 0x101144aa
mov esi, dword [esi]
or eax, 0xffffffff
push ecx
push eax
push eax
push dword [ebp - 0x198]
mov ecx, dword [esi + 0xc]
call dword [0x10151b24]
call dword [esi + 0xc]
mov esi, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x20c]
inc eax
mov dword [ebp - 0x1b0], eax
cmp eax, ecx
jl 0x101123db
jmp 0x101144f8
mov ecx, dword [ebx]
push 0
push 8
push ebx
mov esi, dword [ecx + 0x15c]
mov ecx, esi
call dword [0x10151b24]
call esi
push 0xfffffffffffffffd
jmp 0x10112238
push dword [ebp - 0x210]
mov ecx, ebx
push dword [ebp - 0x214]
call fcn.10038cdf
test esi, esi
je 0x1011451b
mov eax, dword [esi]
push 0
push 0
mov esi, dword [eax + 0x78]
mov ecx, esi
call dword [0x10151b24]
mov ecx, dword [ebp - 0x198]
call esi
mov esi, dword [ebp - 0x198]
and dword [0x101940e8], 0
mov ebx, dword [ebp - 0x1b4]
mov byte [0x10194100], 0
cmp ebx, 0xfffffff4
je 0x10114547
test esi, esi
je 0x10114547
mov ecx, esi
call fcn.100bd51e
test al, al
push 0xffffffffffffffff
pop eax
cmove ebx, eax
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10143700
leave
ret 0x18