Function at 0x100c4a10
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d29d2
mov eax, dword fs:[0]
push eax
sub esp, 0x2b0
mov eax, dword [0x100e3008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x248], eax
lea edi, [esi + 8]
mov dword [ebp - 0x1f0], eax
mov ecx, edi
mov eax, dword [edi]
mov dword [ebp - 0x24c], esi
mov dword [ebp - 0x24], edi
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x10109c6c]
mov ebx, eax
mov edx, dword [0x10109dfc]
mov eax, dword [0x100f5fb8]
add edx, 0xffffffd6
xor edx, 0x3a7c3b5
mov dword [ebp - 0x20], ebx
movss xmm0, dword [ecx + 0x14]
mulss xmm0, dword [0x100d73d4]
mov ecx, dword [edx + esi]
movss dword [ebp - 0x18], xmm0
cmp ecx, dword [edx + eax]
je 0x100c4aa6
mov byte [ebp - 0x1e6], 1
jmp 0x100c4abc
mov ecx, dword [0x10109ce8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
setne byte [ebp - 0x1e6]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x24]
call eax
cmp byte [0x100fd948], 0
mov dl, al
mov dh, byte [ebp - 0x1e6]
mov byte [ebp - 0x1e5], dl
je 0x100c4afe
test dh, dh
je 0x100c4afe
test dl, dl
jne 0x100c4b0b
mov eax, dword [0x10109e7c]
add eax, 0xffffffb6
xor eax, 0x3a7c3d5
mov byte [eax + esi], 1
mov byte [ebx + 0x1010c377], 1
jmp 0x100c4b19
test dl, dl
jne 0x100c4b0b
mov byte [ebx + 0x1010c377], 1
jmp 0x100c4b19
mov al, byte [ebx + 0x1010c377]
test al, al
je 0x100c6cad
test dl, dl
je 0x100c4b2d
movss xmm0, dword [ebx*4 + 0x1010c3b4]
subss xmm0, dword [ebp - 0x18]
jmp 0x100c4b3b
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [ebx*4 + 0x1010c3b4]
movss dword [ebx*4 + 0x1010c3b4], xmm0
test dh, dh
je 0x100c4b55
cmp byte [0x100fb9e4], 0
je 0x100c4b55
mov al, 1
jmp 0x100c4b57
xor al, al
movss xmm1, dword [0x100d7378]
xorps xmm2, xmm2
comiss xmm0, xmm1
mov byte [ebp - 0x1fb], al
ja 0x100c4b78
comiss xmm0, xmm2
movaps xmm1, xmm0
ja 0x100c4b78
xorps xmm1, xmm1
ucomiss xmm1, xmm2
movss dword [ebx*4 + 0x1010c3b4], xmm1
lahf
test ah, 0x44
jp 0x100c4b92
test al, al
je 0x100c6cad
mov ecx, dword [0x10109e58]
mov eax, dword [0x10109c6c]
add ecx, 0xffffffbf
xor ecx, 0x3a7c3cc
movss xmm2, dword [eax + 0x10]
subss xmm2, dword [ecx + esi]
test dl, dl
je 0x100c4bc1
comiss xmm2, dword [0x100d7400]
ja 0x100c6cad
mov eax, dword [0x100fb970]
movaps xmm0, xmm1
mulss xmm0, dword [0x100d74b8]
test dh, dh
mulss xmm1, dword [0x100d74a4]
cmovne eax, dword [0x100fb8e0]
mov dword [ebp - 0x18], eax
cvttss2si ecx, xmm0
cvttss2si ebx, xmm1
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x20c], ebx
test dl, dl
je 0x100c4c79
cmp byte [ebp - 0x1fb], 0
je 0x100c4c79
movss xmm0, dword [0x100d73ec]
mov ecx, 0x70
comiss xmm2, xmm0
mov ebx, 0x50
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x20c], ebx
jbe 0x100c4c6c
subss xmm2, xmm0
movss xmm0, dword [0x100d7484]
movaps xmm1, xmm2
mulss xmm2, dword [0x100d7410]
mulss xmm1, dword [0x100d741c]
subss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x100d7468]
subss xmm0, xmm2
mov dword [ebp - 0x250], ecx
cvttss2si ebx, xmm0
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x1c], 0xff707070
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x15], cl
lea edx, [ebp - 0x1e4]
mov ecx, dword [0x10109c10]
push edx
push dword [ebp - 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
test al, al
je 0x100c6cad
push dword [ebp - 0x250]
mov ecx, 0x1010c378
push esi
call fcn.100c4460
lea eax, [ebp - 0x38]
mov ecx, 0x1010c378
push eax
push esi
call fcn.100c76a0
test al, al
je 0x100c6cad
cmp byte [ebp - 0x1e6], 0
lea eax, [ebp - 0x1ec]
mov ecx, 0x100fc2e8
push eax
je 0x100c4d26
mov dword [ebp - 0x20], 0
call fcn.10020530
mov ecx, 0x100fc2e8
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x208]
mov ecx, 0x100fc2e8
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x100c4d72
jmp 0x100c4d88
mov dword [ebp - 0x20], 1
call fcn.10020530
mov ecx, 0x100fc2e8
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x208]
mov ecx, 0x100fc2e8
push eax
call fcn.10020530
mov edx, dword [esi]
cmp edx, dword [eax]
je 0x100c4dee
push dword [ebp - 0x250]
mov ecx, 0x1010c378
push dword [ebp - 0x24c]
call fcn.100c77e0
cmp byte [ebp - 0x1e6], 0
je 0x100c4dee
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x20], 0
push eax
mov ecx, 0x100fb848
call fcn.10020530
mov ecx, 0x100fb848
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x208]
mov ecx, 0x100fb848
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x100c4e4a
jmp 0x100c4ece
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x20], 1
push eax
mov ecx, 0x100fb848
call fcn.10020530
mov ecx, 0x100fb848
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x208]
mov ecx, 0x100fb848
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100c4f31
push dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x34]
push eax
mov byte [ebp - 0x19], bl
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x208], ecx
push ecx
mov ecx, ebx
mov word [ebp - 0x1c], 0xa0a
mov byte [ebp - 0x1a], 0xa
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x228], edx
call fcn.100be0f0
mov eax, dword [ebp - 0x20]
lea ecx, [ebx - 1]
mov esi, dword [ebp - 0x1c]
add esp, 0xc
mov edx, dword [ebp - 0x228]
add eax, 2
dec edx
push esi
push eax
mov eax, dword [ebp - 0x208]
add eax, 2
push eax
call fcn.100be0f0
mov eax, dword [ebp - 0x20]
lea ecx, [ebx + 1]
mov edx, dword [ebp - 0x228]
add esp, 0xc
add eax, 0xfffffffe
push esi
push eax
mov eax, dword [ebp - 0x208]
lea edx, [edx + 1]
add eax, 0xfffffffe
push eax
call fcn.100be0f0
add esp, 0xc
cmp byte [ebp - 0x1e6], 0
je 0x100c4f31
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x18], 0
push eax
mov ecx, 0x100fbbb0
call fcn.10020530
mov ecx, 0x100fbbb0
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x20]
mov ecx, 0x100fbbb0
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x100c4f8a
jmp 0x100c505e
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x18], 1
push eax
mov ecx, 0x100fbbb0
call fcn.10020530
mov ecx, 0x100fbbb0
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x20]
mov ecx, 0x100fbbb0
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100c513d
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x2b8]
call fcn.10020a90
lea ecx, [ebp - 0x1fb]
mov dword [ebp - 4], 0
push ecx
push 0x18
push 0
push eax
lea ecx, [ebp - 0x74]
call fcn.1003b600
mov eax, 4
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 3
call fcn.10020a40
cmp byte [ebp - 0x1e5], 0
mov byte [ebp - 4], 2
mov eax, dword [0x100fbc48]
mov dword [ebp - 0x1c], eax
je 0x100c4ff6
mov word [ebp - 0x1c], 0x8282
mov byte [ebp - 0x1a], 0x82
mov eax, dword [ebp - 0x20c]
lea ecx, [ebp - 0x8c]
mov ebx, dword [ebp - 0x34]
sub ebx, dword [0x1010c314]
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x30]
cdq
sub eax, edx
lea edx, [ebp - 0x74]
mov esi, eax
sar esi, 1
add esi, dword [ebp - 0x38]
call fcn.100bd0c0
push 2
push eax
mov byte [ebp - 4], 4
mov ecx, 0x1010c30c
push dword [ebp - 0x1c]
push ebx
push esi
call fcn.100be680
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 5
call fcn.1003fc30
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 6
call fcn.10020a40
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x1e6], 0
je 0x100c513d
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x18], 0
push eax
mov ecx, 0x100fbce8
call fcn.10020530
mov ecx, 0x100fbce8
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x20]
mov ecx, 0x100fbce8
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x100c5196
mov ebx, dword [ebp - 0x20c]
mov esi, dword [ebp - 0x24c]
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
movq qword [ebp - 0x5c], xmm0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
cmp byte [ebp - 0x1e6], 0
mov dword [ebp - 4], 0xf
movq qword [ebp - 0x80], xmm0
mov dword [ebp - 0x78], 0
je 0x100c544d
push 0x100fbd90
lea ecx, [ebp - 0x68]
call fcn.100205b0
mov eax, dword [ebp - 0x1f0]
or eax, 0x100
or eax, 1
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1f0], eax
jmp 0x100c546d
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x18], 1
push eax
mov ecx, 0x100fbce8
call fcn.10020530
mov ecx, 0x100fbce8
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x20]
mov ecx, 0x100fbce8
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100c50c4
mov eax, dword [ebp - 0x34]
mov ecx, 0x64
mov esi, dword [ebp - 0x24c]
mov edx, ecx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
add ebx, 0xfffffffe
mov eax, dword [0x10109e30]
add eax, 0xffffffc9
mov dword [ebp - 0x1c], ebx
xor eax, 0x3a7c3c2
mov eax, dword [esi + eax]
cmp eax, ecx
cmovl edx, eax
mov eax, 0x51eb851f
sub ecx, edx
mov dword [ebp - 0x204], edx
imul ecx, ecx, 0x1fe
imul ecx
mov ecx, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
cmovg eax, ecx
imul ecx, dword [ebp - 0x204], 0x1fe
mov dword [ebp - 0x20], eax
mov eax, 0x51eb851f
imul ecx
mov ecx, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xff
push ecx
cmovg eax, ecx
mov dword [ebp - 0x208], eax
mov eax, ebx
imul eax, dword [ebp - 0x204]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x100d72c8]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov ebx, dword [ebp - 0x20c]
mov eax, esp
mov edx, dword [ebp - 0x28]
fstp dword [ebp - 0x18]
mov word [eax], 0xa0a
mov byte [eax + 2], 0xa
lea edx, [edx - 1]
mov byte [eax + 3], bl
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
add eax, 4
push eax
push 4
add ecx, 0xfffffffa
call fcn.100be130
mov edx, dword [ebp - 0x28]
add esp, 0xc
cmp byte [ebp - 0x1e5], 0
push ecx
mov eax, esp
je 0x100c5368
mov ecx, dword [ebp - 0x250]
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x1c]
mov word [eax], 0x826e
mov byte [eax + 2], 0x6e
cvttss2si eax, dword [ebp - 0x18]
sub ecx, eax
add eax, 2
mov dword [ebp - 0x1c], ecx
push eax
push 2
lea edx, [ecx + edx]
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 5]
call fcn.100be0f0
mov eax, dword [ebp - 0x204]
add esp, 0xc
cmp eax, 0x5a
jge 0x100c50d0
mov edx, eax
lea ecx, [ebp - 0x74]
call fcn.1002adb0
mov eax, dword [ebp - 0x1f0]
or eax, 0x10
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 7
lea edx, [ebp - 0x74]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x2b8]
mov word [ebp - 0x204], 0x8282
add esi, 0xfffffffb
mov byte [ebp - 0x202], 0x82
mov byte [ebp - 0x201], bl
call fcn.100bd0c0
push 2
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x204]
mov eax, dword [ebp - 0x1c]
add ecx, 0xfffffffc
add eax, ecx
mov ecx, 0x1010a634
push eax
push esi
call fcn.100be680
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 9
call fcn.1003fc30
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0xa
call fcn.10020a40
jmp 0x100c50ca
mov ecx, dword [ebp - 0x20]
mov byte [eax], cl
mov ecx, dword [ebp - 0x208]
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x250]
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x1c]
mov byte [eax + 2], 0
cvttss2si eax, dword [ebp - 0x18]
sub ecx, eax
add eax, 2
mov dword [ebp - 0x1c], ecx
push eax
push 2
lea edx, [ecx + edx]
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 5]
call fcn.100be0f0
mov eax, dword [ebp - 0x204]
add esp, 0xc
cmp eax, 0x5a
jge 0x100c50d0
mov edx, eax
lea ecx, [ebp - 0x74]
call fcn.1002adb0
mov eax, dword [ebp - 0x1f0]
or eax, 0x40
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x248], eax
mov dword [ebp - 4], 0xb
lea edx, [ebp - 0x74]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x2b8]
mov word [ebp - 0x204], 0xffff
add esi, 0xfffffffb
mov byte [ebp - 0x202], 0xff
mov byte [ebp - 0x201], bl
call fcn.100bd0c0
push 2
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0x204]
mov eax, dword [ebp - 0x1c]
add ecx, 0xfffffffc
add eax, ecx
mov ecx, 0x1010a634
push eax
push esi
call fcn.100be680
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0xd
call fcn.1003fc30
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0xe
call fcn.10020a40
jmp 0x100c50ca
push 0x100fbe38
lea ecx, [ebp - 0x2ac]
call fcn.100205b0
or dword [ebp - 0x1f0], 0x202
lea ecx, [ebp - 0x2ac]
push ecx
lea ecx, [ebp - 0x80]
call fcn.10020560
mov dword [ebp - 4], 0x11
mov eax, dword [ebp - 0x1f0]
test al, 2
je 0x100c54ab
and eax, 0xfffffffd
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x12
call fcn.10020680
mov eax, dword [ebp - 0x1f0]
mov byte [ebp - 4], 0x13
test al, 1
je 0x100c54c3
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x14
call fcn.10020680
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
lea ecx, [ebp - 0x80]
call fcn.10020540
lea eax, [ebp - 0x1ec]
push eax
lea ecx, [ebp - 0x80]
call fcn.10020530
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax]
je 0x100c5e39
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 0
jne 0x100c5606
mov eax, dword [0x10109e34]
lea ecx, [ebp - 0x50]
add eax, 0xffffffc8
xor eax, 0x3a7c3c3
add eax, esi
cmp byte [ebp - 0x1e5], 0
push eax
je 0x100c558a
lea edx, [ebp - 0x298]
mov dword [ebp - 0x298], 0x692524
call fcn.100a3800
add esp, 4
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x244]
push eax
mov word [ebp - 0x290], 0x8282
mov byte [ebp - 0x28e], 0x82
mov byte [ebp - 0x28d], bl
call fcn.100250b0
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x17
call fcn.10020a40
mov byte [ebp - 4], 0x18
jmp 0x100c55fa
lea edx, [ebp - 0x28c]
mov dword [ebp - 0x28c], 0x692524
call fcn.100a3800
add esp, 4
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x244]
push eax
mov word [ebp - 0x294], 0xc896
mov byte [ebp - 0x292], 0x3c
mov byte [ebp - 0x291], bl
call fcn.100250b0
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x1b
call fcn.10020a40
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 1
jne 0x100c5948
mov eax, dword [0x10109e68]
add eax, 0xffffffbb
xor eax, 0x3a7c3d0
cmp byte [esi + eax], 0
mov eax, dword [0x10109e84]
je 0x100c583c
add eax, 0xffffffb4
lea ecx, [ebp - 0x50]
xor eax, 0x3a7c3d7
cmp dword [esi + eax], 0
jle 0x100c5744
cmp byte [ebp - 0x1e5], 0
je 0x100c56c8
lea eax, [ebp - 0x248]
mov word [ebp - 0x248], 0x4b48
push eax
mov byte [ebp - 0x246], 0
call fcn.10020a90
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x288], 0x8282
mov byte [ebp - 0x286], 0x82
mov byte [ebp - 0x285], bl
call fcn.100250b0
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x1e
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x1f
call fcn.10020a40
mov byte [ebp - 4], 0x20
jmp 0x100c593c
lea eax, [ebp - 0x204]
mov word [ebp - 0x204], 0x4b48
push eax
mov byte [ebp - 0x202], 0
call fcn.10020a90
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x284], 0xffff
mov byte [ebp - 0x282], 0xff
mov byte [ebp - 0x281], bl
call fcn.100250b0
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x22
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x23
call fcn.10020a40
mov byte [ebp - 4], 0x24
jmp 0x100c593c
cmp byte [ebp - 0x1e5], 0
je 0x100c57c0
lea eax, [ebp - 0x28]
mov word [ebp - 0x28], 0x4b48
push eax
mov byte [ebp - 0x26], 0
call fcn.10020a90
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x280], 0x8282
mov byte [ebp - 0x27e], 0x82
mov byte [ebp - 0x27d], bl
call fcn.100250b0
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x26
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x27
call fcn.10020a40
mov byte [ebp - 4], 0x28
jmp 0x100c593c
lea eax, [ebp - 0x1f0]
mov word [ebp - 0x1f0], 0x4b48
push eax
mov byte [ebp - 0x1ee], 0
call fcn.10020a90
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x27c], 0xffff
mov byte [ebp - 0x27a], 0xff
mov byte [ebp - 0x279], bl
call fcn.100250b0
mov eax, dword [ebp - 0x27c]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x2a
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x2b
call fcn.10020a40
mov byte [ebp - 4], 0x2c
jmp 0x100c593c
add eax, 0xffffffb4
xor eax, 0x3a7c3d7
cmp dword [esi + eax], 0
jle 0x100c5948
cmp byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x50]
je 0x100c58cc
lea eax, [ebp - 0x1fc]
mov word [ebp - 0x1fc], 0x4b
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x278], 0x8282
mov byte [ebp - 0x276], 0x82
mov byte [ebp - 0x275], bl
call fcn.100250b0
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x2f
call fcn.10020a40
mov byte [ebp - 4], 0x30
jmp 0x100c593c
lea eax, [ebp - 0x258]
mov word [ebp - 0x258], 0x4b
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x31
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x274], 0xffff
mov byte [ebp - 0x272], 0xff
mov byte [ebp - 0x271], bl
call fcn.100250b0
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x32
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x33
call fcn.10020a40
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 2
jne 0x100c5a75
mov eax, dword [0x10109e74]
add eax, 0xffffffb8
xor eax, 0x3a7c3d3
cmp byte [esi + eax], 0
je 0x100c5a75
cmp byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x50]
je 0x100c59f1
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], 0x4d4f4f5a
push eax
mov byte [ebp - 0x218], 0
call fcn.10020a90
mov byte [ebp - 4], 0x35
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x268], 0x8282
mov byte [ebp - 0x266], 0x82
mov byte [ebp - 0x265], bl
call fcn.100250b0
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x37
call fcn.10020a40
mov byte [ebp - 4], 0x38
jmp 0x100c5a69
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1f8], 0x4d4f4f5a
push eax
mov byte [ebp - 0x1f4], 0
call fcn.10020a90
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x26c], 0xb43c
mov byte [ebp - 0x26a], 0xe1
mov byte [ebp - 0x269], bl
call fcn.100250b0
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x3a
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x3b
call fcn.10020a40
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1c]
xorps xmm1, xmm1
cmp dword [eax], 3
jne 0x100c5bb0
mov eax, dword [0x10109e90]
add eax, 0xffffffb1
xor eax, 0x3a7c3da
movss xmm0, dword [esi + eax]
comiss xmm0, xmm1
jbe 0x100c5bb0
cmp byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x50]
je 0x100c5b27
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0x2a0], 0x4e494c42
push eax
mov word [ebp - 0x29c], 0x44
call fcn.10020a90
mov byte [ebp - 4], 0x3d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x270], 0x8282
mov byte [ebp - 0x26e], 0x82
mov byte [ebp - 0x26d], bl
call fcn.100250b0
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x3e
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x3f
call fcn.10020a40
mov byte [ebp - 4], 0x40
jmp 0x100c5ba1
lea eax, [ebp - 0x224]
mov dword [ebp - 0x224], 0x4e494c42
push eax
mov word [ebp - 0x220], 0x44
call fcn.10020a90
mov byte [ebp - 4], 0x41
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x254], 0xb43c
mov byte [ebp - 0x252], 0xe1
mov byte [ebp - 0x251], bl
call fcn.100250b0
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x42
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x43
call fcn.10020a40
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x50]
call fcn.10020a40
xorps xmm1, xmm1
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 4
jne 0x100c5d1c
mov eax, dword [0x10109da0]
mov ecx, dword [eax + esi]
movss xmm0, dword [ecx + 0x58]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100c5d1c
mov eax, dword [ecx + 0x50]
mov ecx, dword [0x10109d60]
mov dword [ebp - 0x200], ecx
mov ecx, dword [0x10109db8]
mov dword [ebp - 0x214], eax
cmp dword [ecx + esi], 0
jne 0x100c5c0c
mov eax, dword [0x10109d3c]
mov ecx, esi
call eax
mov ecx, dword [0x10109db8]
mov eax, dword [ebp - 0x214]
mov ecx, dword [ecx + esi]
mov edx, eax
call dword [ebp - 0x200]
cmp eax, 0x3c7
jne 0x100c5d1c
cmp byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x50]
je 0x100c5ca0
lea eax, [ebp - 0x25c]
mov word [ebp - 0x25c], 0x52
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x45
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x228], 0x8282
mov byte [ebp - 0x226], 0x82
mov byte [ebp - 0x225], bl
call fcn.100250b0
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x46
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x47
call fcn.10020a40
mov byte [ebp - 4], 0x48
jmp 0x100c5d10
lea eax, [ebp - 0x260]
mov word [ebp - 0x260], 0x52
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x208], 0xb43c
mov byte [ebp - 0x206], 0xe1
mov byte [ebp - 0x205], bl
call fcn.100250b0
mov eax, dword [ebp - 0x208]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x4a
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x4b
call fcn.10020a40
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x1c]
cmp dword [eax], 5
jne 0x100c5e1b
mov eax, dword [0x10109d6c]
mov ecx, esi
call eax
test al, al
je 0x100c5e1b
cmp byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x50]
je 0x100c5dab
lea eax, [ebp - 0x264]
mov word [ebp - 0x264], 0x42
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x4d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x20], 0x8282
mov byte [ebp - 0x1e], 0x82
mov byte [ebp - 0x1d], bl
call fcn.100250b0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x4e
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x4f
call fcn.10020a40
mov byte [ebp - 4], 0x50
jmp 0x100c5e0f
lea eax, [ebp - 0x210]
mov word [ebp - 0x210], 0x42
push eax
call fcn.10020a90
mov byte [ebp - 4], 0x51
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x18], 0xff
mov byte [ebp - 0x16], 0
mov byte [ebp - 0x15], bl
call fcn.100250b0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x52
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x53
call fcn.10020a40
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
add dword [ebp - 0x1c], 4
lea eax, [ebp - 0x1ec]
push eax
lea ecx, [ebp - 0x80]
call fcn.10020530
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax]
jne 0x100c54f0
lea eax, [ebp - 0x1ec]
mov ecx, 0x100fbd90
push eax
call fcn.10020530
mov ecx, 0x100fbd90
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
cmp eax, esi
je 0x100c5e75
cmp dword [eax], 6
je 0x100c5e72
add eax, 4
cmp eax, esi
jne 0x100c5e66
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x214]
mov ecx, 0x100fbd90
push eax
call fcn.10020530
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax]
je 0x100c5f80
cmp byte [0x1010e6c1], 0
je 0x100c5f80
cmp byte [ebp - 0x1e6], 0
je 0x100c5f80
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x1f8], 0x454b4146
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x1f4], 0
push eax
call fcn.10020a90
cmp byte [ebp - 0x1e5], 0
je 0x100c5f25
mov byte [ebp - 4], 0x55
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x18], 0x8282
mov byte [ebp - 0x16], 0x82
mov byte [ebp - 0x15], bl
call fcn.100250b0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x56
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x57
call fcn.10020a40
mov byte [ebp - 4], 0x58
jmp 0x100c5f74
mov byte [ebp - 4], 0x59
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x244]
mov word [ebp - 0x18], 0xffff
mov byte [ebp - 0x16], 0xff
mov byte [ebp - 0x15], bl
call fcn.100250b0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x244]
mov byte [ebp - 4], 0x5a
push eax
lea ecx, [ebp - 0x5c]
call fcn.1009f820
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 0x5b
call fcn.10020a40
mov byte [ebp - 4], 0x5c
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x58]
mov eax, 0x92492493
mov esi, dword [ebp - 0x5c]
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100c6033
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x18], ebx
nop dword [eax + eax]
mov ecx, dword [0x1010a63c]
lea edx, [ebx + esi]
mov eax, dword [ebp - 0x34]
dec ecx
mov ebx, dword [ebp - 0x30]
mov esi, dword [edx + 0x18]
imul ecx, edi
add eax, ecx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x38]
add eax, 2
add ebx, eax
call fcn.100bd0c0
push 0
push eax
push esi
mov byte [ebp - 4], 0x5d
mov ecx, 0x1010a634
push dword [ebp - 0x1ec]
push ebx
call fcn.100be680
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x5e
call fcn.1003fc30
mov byte [ebp - 4], 0x13
mov eax, 0x92492493
mov ecx, dword [ebp - 0x58]
inc edi
mov esi, dword [ebp - 0x5c]
sub ecx, esi
mov ebx, dword [ebp - 0x18]
imul ecx
add ebx, 0x1c
add edx, ecx
mov dword [ebp - 0x18], ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x100c5fb0
mov edi, dword [ebp - 0x24]
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x5f
call fcn.10020680
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 0x60
call fcn.1009f230
cmp byte [ebp - 0x1e6], 0
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1f0], 0
je 0x100c628b
cmp byte [0x100fc1a4], 0
je 0x100c6231
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x474
lea esi, [eax + 0x100e2c60]
test esi, esi
je 0x100c6231
cmp byte [esi + 0x44c], 0
je 0x100c6231
cmp dword [esi + 0x18], 0
je 0x100c6231
lea eax, [ebp - 0x68]
push eax
lea ecx, [esi + 8]
call fcn.100213f0
mov ecx, eax
mov dword [ebp - 4], 0x61
call fcn.10021620
mov dword [ebp - 4], 0xffffffff
mov edi, dword [eax]
test edi, edi
je 0x100c6231
movss xmm1, dword [edi + 0x3c]
movss xmm0, dword [edi + 0x38]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1001b3a0
cvtss2sd xmm0, xmm0
comisd xmm0, xmmword [0x100d7390]
jbe 0x100c6129
cmp byte [edi + 0x3f0], 0
je 0x100c6231
cmp dword [esi + 0x468], 3
jg 0x100c6231
movss xmm1, dword [esi + 0x448]
xorps xmm0, xmm0
subss xmm1, dword [edi + 0x3f8]
movss xmm2, dword [0x100d7380]
mov dword [ebp - 0x200], 0x3f900000
mov dword [ebp - 0x24], 0
comiss xmm1, xmm2
movss dword [ebp - 0x1ec], xmm1
ja 0x100c6182
comiss xmm1, xmm0
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x1ec]
cmovae eax, ecx
movss xmm2, dword [eax]
movd xmm1, dword [ebp - 0x30]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
mulss xmm1, dword [0x100d7368]
comiss xmm1, xmm0
movss dword [ebp - 0x24], xmm1
jbe 0x100c6231
push ecx
mov ecx, dword [ebp - 0x20c]
mov eax, esp
push 4
mov byte [eax + 3], cl
mov word [eax], 0xa0a
mov byte [eax + 2], 0xa
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
add eax, 2
mov edx, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x34]
add eax, 2
lea ecx, [ecx - 1]
add edx, eax
call fcn.100be130
mov eax, dword [0x100fc248]
add esp, 0xc
cmp byte [ebp - 0x1e5], 0
mov dword [ebp - 0x1c], eax
je 0x100c61f6
mov word [ebp - 0x1c], 0x6482
mov byte [ebp - 0x1a], 0x78
mov eax, dword [ebp - 0x250]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x38]
mov byte [ebp - 0x19], al
cvttss2si eax, dword [ebp - 0x24]
push dword [ebp - 0x1c]
push 2
push eax
mov eax, dword [ebp - 0x34]
add eax, 3
add edx, eax
call fcn.100be0f0
add esp, 0xc
mov dword [ebp - 0x1c], 5
mov dword [ebp - 0x228], 1
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x24], 0
push eax
mov ecx, 0x100fbee0
call fcn.10020530
mov ecx, 0x100fbee0
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x18]
mov ecx, 0x100fbee0
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x100c62e4
jmp 0x100c6cad
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x24], 1
push eax
mov ecx, 0x100fbee0
call fcn.10020530
mov ecx, 0x100fbee0
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x18]
mov ecx, 0x100fbee0
push eax
call fcn.10020530
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100c6cad
mov ecx, dword [0x10109c14]
mov eax, dword [0x10109ec4]
mov edi, dword [ebp - 0x24c]
add eax, 0xffffffa4
push ecx
mov edx, dword [ecx]
xor eax, 0x3a7c3e7
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [edi + eax]
mov dword [edx], eax
call esi
mov ebx, eax
mov dword [ebp - 0x254], ebx
test ebx, ebx
je 0x100c6cad
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x6f8]
mov ecx, ebx
call edx
test eax, eax
je 0x100c6cad
mov eax, dword [eax + 0x14]
xorps xmm1, xmm1
mov dword [ebp - 0x18], eax
mov eax, dword [0x10109ee0]
add eax, 0xffffff9d
xor eax, 0x3a7c3ee
mov ebx, dword [ebx + eax]
mov eax, dword [0x10109da0]
mov dword [ebp - 0x200], ebx
mov esi, dword [eax + edi]
movss xmm0, dword [esi + 0x58]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100c63ab
mov ecx, dword [0x10109d60]
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x1ec], ecx
mov ecx, dword [0x10109db8]
mov dword [ebp - 0x24], eax
cmp dword [ecx + edi], 0
jne 0x100c6395
mov eax, dword [0x10109d3c]
mov ecx, edi
call eax
mov ecx, dword [0x10109db8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ecx + edi]
mov edx, eax
call dword [ebp - 0x1ec]
cmp eax, 0x3c7
jne 0x100c63ab
mov al, 1
jmp 0x100c63ad
xor al, al
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x1fb], al
cmp ecx, 0xffffffff
je 0x100c6564
cmp byte [0x100fc004], 0
je 0x100c6564
test al, al
je 0x100c63d7
movss xmm1, dword [esi + 0x64]
jmp 0x100c63e9
movd xmm1, ebx
movd xmm0, ecx
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mov eax, dword [ebp - 0x30]
add eax, 0xfffffffe
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov ebx, dword [ebp - 0x20c]
mov eax, esp
mov esi, dword [ebp - 0x1c]
push 4
fstp dword [ebp - 0x20]
mov word [eax], 0xa0a
mov byte [eax + 2], 0xa
mov byte [eax + 3], bl
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
add ecx, esi
mov eax, dword [ebp - 0x30]
add edx, 2
add edx, ecx
add eax, 2
mov ecx, dword [ebp - 0x38]
push eax
lea ecx, [ecx - 1]
call fcn.100be130
mov eax, dword [0x100fc130]
add esp, 0xc
cmp byte [ebp - 0x1e5], 0
mov dword [ebp - 0x28], eax
je 0x100c645f
mov word [ebp - 0x28], 0x7d78
mov byte [ebp - 0x26], 0x82
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
add ecx, esi
mov byte [ebp - 0x25], al
add edx, 3
cvttss2si eax, dword [ebp - 0x20]
add edx, ecx
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x28]
add eax, 2
push 2
push eax
call fcn.100be0f0
mov eax, 0x66666667
add esp, 4
imul dword [ebp - 0x18]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_round]
mov edx, dword [ebp - 0x200]
add esp, 8
fstp qword [ebp - 0x224]
cvttsd2si eax, qword [ebp - 0x224]
cmp edx, eax
jg 0x100c655c
cmp byte [ebp - 0x1fb], 0
jne 0x100c655c
lea ecx, [ebp - 0x74]
call fcn.1002adb0
mov dword [ebp - 4], 0x62
lea edx, [ebp - 0x74]
mov edi, dword [ebp - 0x34]
lea ecx, [ebp - 0x2b8]
add edi, esi
mov word [ebp - 0x18], 0xffff
cvttss2si esi, dword [ebp - 0x20]
add edi, dword [ebp - 0x2c]
mov byte [ebp - 0x16], 0xff
mov byte [ebp - 0x15], bl
add esi, dword [ebp - 0x38]
call fcn.100bd0c0
push 2
push eax
mov byte [ebp - 4], 0x63
mov ecx, 0x1010a634
push dword [ebp - 0x18]
push edi
push esi
call fcn.100be680
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0x64
call fcn.1003fc30
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0x65
call fcn.10020a40
mov edi, dword [ebp - 0x24c]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x1c]
add esi, 6
mov dword [ebp - 0x1c], esi
jmp 0x100c656a
mov ebx, dword [ebp - 0x20c]
cmp byte [0x100fc08c], 0
je 0x100c677d
lea ecx, [ebp - 0x74]
call fcn.10020ad0
mov dword [ebp - 4], 0x66
mov ecx, dword [0x10109de8]
mov eax, dword [0x100f5fb8]
add ecx, 0xffffffdb
xor ecx, 0x3a7c3b0
mov dword [ebp - 0x1f0], 0
movss xmm1, dword [edi + ecx]
movss xmm2, dword [edi + ecx + 4]
subss xmm2, dword [ecx + eax + 4]
subss xmm1, dword [ecx + eax]
movss xmm0, dword [edi + ecx + 8]
subss xmm0, dword [ecx + eax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
mulss xmm2, dword [0x100d72e0]
cvtps2pd xmm0, xmm2
mulsd xmm0, qword [0x100d7358]
cvttsd2si esi, xmm0
mov dword [ebp - 0x20], esi
test esi, esi
jle 0x100c676e
mov edi, dword [ebp - 0x228]
lea eax, [edi + 9]
mov dword [ebp - 0x1f0], eax
cmp esi, 5
jle 0x100c669b
mov eax, 0x66666667
mov ecx, esi
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
sub ecx, eax
je 0x100c664d
nop dword [eax]
dec esi
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
lea ecx, [eax + eax*4]
sub edx, ecx
jne 0x100c6630
mov dword [ebp - 0x20], esi
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
sub esi, eax
jne 0x100c66dc
lea eax, [ebp - 0x20]
mov dword [ebp - 0x224], 0x46206925
push eax
lea edx, [ebp - 0x224]
mov word [ebp - 0x220], 0x54
lea ecx, [ebp - 0x50]
call fcn.100a3800
add esp, 4
lea ecx, [ebp - 0x74]
push eax
call fcn.100355d0
mov byte [ebp - 4], 0x67
jmp 0x100c66d0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x224], 0x46206925
push eax
lea edx, [ebp - 0x224]
mov word [ebp - 0x220], 0x54
lea ecx, [ebp - 0x50]
call fcn.100a3800
add esp, 4
lea ecx, [ebp - 0x74]
push eax
call fcn.100355d0
mov byte [ebp - 4], 0x68
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov byte [ebp - 4], 0x66
cmp byte [ebp - 0x1e5], 0
je 0x100c6737
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x50]
add edi, dword [ebp - 0x1c]
add edi, dword [ebp - 0x34]
add edi, dword [ebp - 0x2c]
cdq
sub eax, edx
mov word [ebp - 0x18], 0x8282
mov esi, eax
mov byte [ebp - 0x16], 0x82
sar esi, 1
lea edx, [ebp - 0x74]
add esi, dword [ebp - 0x38]
mov byte [ebp - 0x15], bl
call fcn.100bd0c0
push 2
push eax
mov byte [ebp - 4], 0x69
mov ecx, 0x1010a634
push dword [ebp - 0x18]
push edi
push esi
call fcn.100be680
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x6a
call fcn.1003fc30
jmp 0x100c676e
push 2
lea eax, [ebp - 0x74]
push eax
push ecx
mov eax, esp
mov ecx, 0x1010a634
mov word [eax], 0xffff
mov byte [eax + 2], 0xff
mov byte [eax + 3], bl
mov eax, dword [ebp - 0x1c]
add eax, edi
add eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x38]
push eax
call fcn.100be4f0
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0xffffffff
call fcn.10020a40
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x24], 0
push eax
mov ecx, 0x100fbf88
call fcn.10020530
mov ecx, 0x100fbf88
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x18]
mov ecx, 0x100fbf88
push eax
call fcn.10020530
push eax
mov ecx, esi
call fcn.100204d0
test al, al
je 0x100c6b3f
mov eax, dword [0x10109d7c]
mov ecx, dword [ebp - 0x254]
mov dword [ebp - 0x208], 0xfffffff7
call eax
mov ecx, eax
test ecx, ecx
jne 0x100c68af
push 0x65
lea ecx, [ebp - 0x1f8]
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 0x1f8], al
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 0x1f7], al
call fcn.10022330
push 0x6f
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 0x1f6], al
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 0x1f5], al
call fcn.10022330
push 0
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 0x1f4], al
call fcn.10022330
mov byte [ebp - 0x1f3], al
xor esi, esi
push esi
lea ecx, [ebp - 0x1f8]
call fcn.10020980
push esi
lea ecx, [ebp - 0x1f8]
mov bl, byte [eax]
xor bl, 0xe7
call fcn.10020980
inc esi
mov byte [eax], bl
cmp esi, 6
jb 0x100c6871
lea ecx, [ebp - 0x1f8]
call fcn.1001b8f0
push eax
lea ecx, [ebp - 0x74]
call fcn.10020a90
jmp 0x100c6a7d
mov eax, dword [0x10109d80]
call eax
mov ecx, eax
test ecx, ecx
jne 0x100c6972
push 0x65
lea ecx, [ebp - 0x21c]
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x21c], al
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x21b], al
call fcn.10022330
push 0x6f
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x21a], al
call fcn.10022330
push 0x72
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x219], al
call fcn.10022330
push 0
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x218], al
call fcn.10022330
mov byte [ebp - 0x217], al
xor esi, esi
push esi
lea ecx, [ebp - 0x21c]
call fcn.10020980
push esi
lea ecx, [ebp - 0x21c]
mov bl, byte [eax]
xor bl, 0xe7
call fcn.10020980
inc esi
mov byte [eax], bl
cmp esi, 6
jb 0x100c6934
lea ecx, [ebp - 0x21c]
call fcn.1001b8f0
push eax
lea ecx, [ebp - 0x74]
call fcn.10020a90
jmp 0x100c6a7d
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, dword [0x10109c5c]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
call edx
push eax
lea ecx, [ebp - 0x2b8]
call fcn.1009f8d0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 0x6b
call fcn.10020ad0
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 0x6c
call fcn.100c85e0
test al, al
je 0x100c69c5
lea ecx, [ebp - 0x74]
call fcn.10020ad0
jmp 0x100c6a67
mov edi, dword [0x10109aec]
lea ecx, [ebp - 0x2b8]
call fcn.100be980
lea ecx, [ebp - 0x2b8]
mov esi, eax
call fcn.100be990
push 0
push 0
push 0
push 0
push esi
push eax
push 0
push 0xfde9
call edi
push 0
push eax
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x24], eax
call fcn.10035610
push eax
lea ecx, [ebp - 0x8c]
call fcn.100355d0
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov ebx, dword [0x10109aec]
lea ecx, [ebp - 0x8c]
push 0
call fcn.100209f0
lea ecx, [ebp - 0x2b8]
mov edi, eax
call fcn.100be980
lea ecx, [ebp - 0x2b8]
mov esi, eax
call fcn.100be990
push 0
push 0
push dword [ebp - 0x24]
push edi
push esi
push eax
push 0
push 0xfde9
call ebx
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x74]
call fcn.10025070
lea ecx, [ebp - 0x8c]
call fcn.10020a40
lea ecx, [ebp - 0x2b8]
call fcn.1003fad0
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 0x6d
push eax
lea ecx, [ebp - 0x74]
call fcn.10028860
lea ecx, [ebp - 0x74]
mov edi, dword [eax]
lea eax, [ebp - 0x1ec]
push eax
call fcn.100355a0
lea ecx, [ebp - 0x74]
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10028860
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
lea ecx, [ebp - 0x214]
push edi
push esi
push dword [eax]
call fcn.1003fe90
add esp, 0xc
lea eax, [ebp - 0x74]
cmp byte [ebp - 0x1e5], 0
push 2
push eax
push ecx
mov eax, esp
je 0x100c6af0
mov ecx, dword [ebp - 0x20c]
mov word [eax], 0x8282
mov byte [eax + 2], 0x82
mov byte [eax + 3], cl
jmp 0x100c6b08
mov ebx, dword [ebp - 0x20c]
mov word [eax], 0xffff
mov byte [eax + 2], 0xff
mov dword [ebp - 0x20c], ebx
mov byte [eax + 3], bl
mov eax, dword [ebp - 0x1f0]
mov ecx, 0x1010a634
add eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x38]
push eax
call fcn.100be4f0
lea ecx, [ebp - 0x74]
mov dword [ebp - 4], 0xffffffff
call fcn.10020a40
jmp 0x100c6b45
mov dword [ebp - 0x20c], ebx
lea eax, [ebp - 0x1ec]
mov dword [ebp - 0x24], 1
push eax
mov ecx, 0x100fbf88
call fcn.10020530
mov ecx, 0x100fbf88
mov esi, dword [eax]
lea eax, [ebp - 0x200]
push eax
call fcn.10020540
push esi
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x214]
push dword [eax]
call fcn.10021760
add esp, 8
mov esi, eax
lea eax, [ebp - 0x18]
mov ecx, 0x100fbf88
push eax
call fcn.10020530
push eax
mov ecx, esi
call fcn.100204d0
test al, al
je 0x100c6cad
mov eax, dword [0x10109edc]
mov ecx, 0x1010e74c
add eax, 0xffffff9e
xor eax, 0x3a7c3ed
add eax, dword [ebp - 0x254]
push eax
call fcn.100c8500
push 0x25
lea ecx, [ebp - 0x210]
mov edi, eax
call fcn.10022330
push 0x63
lea ecx, [ebp - 0x210]
mov byte [ebp - 0x210], al
call fcn.10022330
push 0
lea ecx, [ebp - 0x210]
mov byte [ebp - 0x20f], al
call fcn.10022330
mov byte [ebp - 0x20e], al
xor esi, esi
nop
push esi
lea ecx, [ebp - 0x210]
call fcn.10020980
push esi
lea ecx, [ebp - 0x210]
mov bl, byte [eax]
xor bl, 0xe7
call fcn.10020980
inc esi
mov byte [eax], bl
cmp esi, 3
jb 0x100c6c00
lea ecx, [ebp - 0x210]
call fcn.1001b8f0
push edi
mov edx, eax
lea ecx, [ebp - 0x50]
call fcn.100c87a0
add esp, 4
push 2
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 0x6e
push eax
push ecx
mov ecx, dword [ebp - 0x20c]
mov eax, esp
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x1f0]
sub ecx, dword [ebp - 0x208]
add ecx, dword [ebp - 0x1c]
cmp byte [ebp - 0x1e5], 0
je 0x100c6c7a
mov word [eax], 0x8282
mov byte [eax + 2], 0x82
jmp 0x100c6c83
mov word [eax], 0xffff
mov byte [eax + 2], 0xff
mov eax, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x34]
add eax, 0xfffffffd
add eax, ecx
mov ecx, 0x1010c360
push eax
mov eax, dword [ebp - 0x30]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x38]
push eax
call fcn.100be4f0
lea ecx, [ebp - 0x50]
call fcn.10020a40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100c9377
mov esp, ebp
pop ebp
ret 4