Function at 0x10083790
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x234
mov eax, dword [0x100ef018]
xor eax, esp
mov dword [esp + 0x230], eax
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ebx
push esi
push edi
test ebx, ebx
je 0x1008380c
cmp word [ebx], 0xffff
je 0x1008380c
mov eax, 0x861110
call eax
mov edx, 0x861aa0
mov ecx, eax
call edx
movsx edi, word [ebx]
mov dword [esp + 0x64], eax
cmp edi, 0x2000
ja 0x1008380c
xor esi, esi
mov edx, 0x106deda2
nop dword [eax + eax]
movzx ecx, word [edx - 2]
movzx eax, word [edx]
shl ecx, 9
add ecx, eax
cmp edi, ecx
je 0x10083825
add edx, 0x7c
inc esi
cmp edx, 0x107d6da2
jl 0x100837f0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.100b7755
mov esp, ebp
pop ebp
ret 0x18
imul esi, esi, 0x7c
add esi, 0x106deda0
mov dword [esp + 0x50], esi
je 0x1008380c
imul eax, edi, 0x54
add eax, dword [0x8128ac0]
mov dword [esp + 0x60], eax
je 0x1008380c
cmp byte [ebx + 0x61], 1
mov dword [esp + 0x38], 0
jne 0x1008387d
cmp byte [ebx + 0x62], 0
jne 0x1008387d
call fcn.100c112b
mov eax, dword [ebx + 0x63]
test eax, eax
je 0x1008380c
cdq
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x78], edx
call fcn.100c0751
add esp, 4
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x64]
mov dword [esp + 0x40], 0
mov dword [edi + 0x11bb64], 0xffffffff
mov eax, dword [ebx + 2]
mov ecx, eax
sar ecx, 3
mov dword [esp + 0x4c], eax
and ecx, 0xf
movzx eax, word [esi + 0x4a]
mov dword [esp + 0x54], ecx
cmp ax, 0xffff
je 0x10083990
mov edx, 0x1a25
cmp word [ebx], dx
jne 0x1008394e
mov dl, byte [ebx + 0x17]
movsx eax, dl
sub eax, 1
je 0x1008390e
sub eax, 1
je 0x100838fd
sub eax, 2
je 0x100838ec
or ecx, 0xffffffff
test dl, dl
jne 0x1008391d
mov dword [edi + 0x11bb64], 0
xor ecx, ecx
jmp 0x1008391d
mov dword [edi + 0x11bb64], 3
mov ecx, 3
jmp 0x1008391d
mov dword [edi + 0x11bb64], 2
mov ecx, 2
jmp 0x1008391d
mov dword [edi + 0x11bb64], 1
mov ecx, 1
movsx esi, word [esi + 0x4a]
add esi, ecx
cmp esi, 0x80
ja 0x1008380c
xor ecx, ecx
mov edx, 0x106dbaa0
movzx eax, word [edx]
cmp esi, eax
je 0x1008397d
add edx, 0x66
inc ecx
cmp edx, 0x106deda0
jl 0x10083936
jmp 0x1008380c
cwde
lea esi, [eax + ecx]
cmp esi, 0x80
ja 0x1008380c
xor ecx, ecx
mov edx, 0x106dbaa0
movzx eax, word [edx]
cmp esi, eax
je 0x1008397d
add edx, 0x66
inc ecx
cmp edx, 0x106deda0
jl 0x10083965
jmp 0x1008380c
imul ecx, ecx, 0x66
add ecx, 0x106dbaa0
mov dword [esp + 0x40], ecx
je 0x1008380c
mov eax, 0x107dd0f0
mov dword [esp + 0x2c], 0
xor esi, esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], eax
xor edi, edi
nop dword [eax]
push 0x64
add eax, esi
push 0
push eax
call fcn.100b99d0
add esi, 0x64
mov dword [edi + 0x107dd000], 0
add esp, 0xc
mov dword [edi + 0x107dcf10], 0
lea edi, [edi + 4]
cmp esi, 0x1770
jge 0x100839e7
mov eax, dword [esp + 0x30]
jmp 0x100839b0
movzx eax, word [ebx]
push eax
mov eax, 0x7e7820
call eax
mov ecx, 0x7e7870
test al, al
je 0x10083a20
mov edi, dword [esp + 0x50]
cmp word [edi + 0x4a], 0xffff
jne 0x10083a11
mov al, byte [edi + 0x44]
movzx esi, al
jmp 0x10083ac6
mov eax, dword [esp + 0x40]
mov al, byte [eax + 0x42]
movzx esi, al
jmp 0x10083ac6
movzx eax, word [ebx]
push eax
call ecx
cmp al, 1
jne 0x10083a48
cmp dword [esp + 0x54], 7
mov edi, dword [esp + 0x50]
jae 0x10083a3e
movzx esi, byte [edi + 0x44]
jmp 0x10083ac6
mov esi, 3
jmp 0x10083ac6
movsx eax, byte [ebx + 0x18]
and eax, reloc.WS2_32.dll_closesocket
jns 0x10083a58
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 1
je 0x10083abd
cmp eax, 2
je 0x10083abd
xor eax, eax
cmp byte [ebx + eax + 0x4a], 0xff
jne 0x10083ab6
inc eax
cmp eax, 5
jl 0x10083a64
mov cl, byte [ebx + 0x25]
test cl, cl
jle 0x10083a85
test byte [ebx + 0x17], 0x3f
jbe 0x10083a85
mov esi, 4
jmp 0x10083ac2
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
and eax, 0x78
cmp al, 0x38
jae 0x10083a3e
cmp word [edi + 0x4a], 0xffff
jne 0x10083aac
test cl, cl
jg 0x10083aa5
movzx esi, byte [edi + 0x44]
jmp 0x10083ac6
mov esi, 1
jmp 0x10083ac6
mov eax, dword [esp + 0x40]
movzx esi, byte [eax + 0x42]
jmp 0x10083ac6
mov esi, 0xc
jmp 0x10083ac2
mov esi, 9
mov edi, dword [esp + 0x50]
movzx eax, word [ebx]
mov ecx, 0x1a04
mov dword [esp + 0x48], esi
mov byte [esp + 0x5c], 0
cmp ax, cx
je 0x10085095
mov ecx, 0x1a05
cmp ax, cx
mov eax, 0x861110
je 0x1008503f
push 0xc
call eax
mov edx, 0x85ec20
mov ecx, eax
call edx
cmp al, 1
jne 0x10083d18
cmp byte [edi + 0x46], 0
jne 0x10083d18
movzx eax, word [ebx]
push eax
mov eax, 0x83c0c0
call eax
test eax, eax
je 0x10083b41
movsx eax, word [ebx]
push eax
mov eax, 0x5c93c0
call eax
add esp, 4
cmp al, 1
jne 0x10083e5f
cmp byte [ebx + 0x16], 0
jne 0x10083e5f
cmp byte [ebp + 0x14], 0
je 0x10083c07
cmp dword [0x102bc180], 1
mov ecx, 0x58e3b0
push 0
jne 0x10083b90
mov al, byte [ebx + 0x17]
mov ecx, 0x102a9230
movzx edx, word [ebx]
mov byte [esp + 0x48], al
movsx eax, byte [ebx + 0x16]
push eax
push dword [esp + 0x4c]
push dword [ebx + 2]
push edx
call fcn.100826c0
push 0
lea ecx, [esp + 0x94]
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
jmp 0x10083ba7
lea eax, [esp + 0x94]
push eax
push 0
push ebx
call ecx
add esp, 8
mov ecx, eax
call fcn.100d65b0
sub esp, 8
mov eax, 0x5c1170
movsd qword [esp], xmm0
call eax
add esp, 0x10
lea eax, [esp + 0x138]
push eax
push 0
push ebx
mov eax, 0x58e3b0
call eax
add esp, 8
push eax
mov eax, 0x5c1560
call eax
add esp, 8
lea eax, [esp + 0x90]
mov ecx, 0x8128adc
push eax
push 0x654
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
add eax, dword [esp + 0x38]
push eax
call fcn.100827e0
jmp 0x10083cd0
cmp dword [0x102bc180], 1
jne 0x10083c7a
cmp dword [0x102b8d48], 0
mov al, byte [ebx + 0x17]
movzx ecx, word [ebx]
mov edx, dword [ebx + 2]
push 1
mov byte [esp + 0x48], al
movsx eax, byte [ebx + 0x16]
push eax
push dword [esp + 0x4c]
push edx
push ecx
mov ecx, 0x102a9230
je 0x10083c51
call fcn.100826c0
push 0
lea ecx, [esp + 0x94]
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
jmp 0x10083c98
call fcn.100826c0
mov ecx, eax
mov eax, 0x55555556
imul ecx
push 0
mov eax, edx
lea ecx, [esp + 0x94]
shr eax, 0x1f
add eax, edx
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
jmp 0x10083c98
push 0
lea eax, [esp + 0x94]
push eax
push 1
push ebx
mov eax, 0x58e3b0
call eax
add esp, 8
mov ecx, eax
call fcn.100d65b0
sub esp, 8
mov eax, 0x5c1170
movsd qword [esp], xmm0
call eax
add esp, 0x10
lea eax, [esp + 0x90]
mov ecx, 0x8128adc
push eax
push 0x3f
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
add eax, dword [esp + 0x38]
push eax
call fcn.10082910
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [eax*4 + 0x107dd000], esi
mov eax, dword [esp + 0x2c]
movzx ecx, byte [edi + 0x45]
push 0x100e3b74
mov dword [eax*4 + 0x107dd000], ecx
mov ecx, dword [esp + 0x30]
inc ecx
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
imul eax, ecx, 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
add esp, 8
mov byte [esp + 0x5c], 1
jmp 0x10083e5b
push 0xc
mov eax, 0x861110
call eax
mov ecx, eax
mov esi, 0x85ec20
call esi
test al, al
jne 0x10083e5f
push 0xe
mov eax, 0x861110
call eax
mov ecx, eax
call esi
test al, al
jne 0x10083e5f
push 0xf
mov eax, 0x861110
call eax
mov ecx, eax
call esi
test al, al
jne 0x10083e5f
cmp byte [ebp + 0x14], al
je 0x10083e5f
mov eax, dword [esp + 0x2c]
mov ecx, 0x101a8848
push 0x123
mov dword [eax*4 + 0x107dd000], 0xe
mov eax, dword [esp + 0x30]
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x30]
imul esi, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
add esi, dword [esp + 0x34]
call fcn.1003fea0
push eax
push esi
call fcn.10087030
mov eax, dword [esp + 0x34]
add esp, 8
mov ecx, 0x101a8848
mov dword [eax*4 + 0x107dd000], 0xe
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x2c]
push dword [0x101a2480]
imul esi, eax, 0x64
inc eax
push 0x12b
mov dword [esp + 0x34], eax
add esi, dword [esp + 0x38]
call fcn.1003fea0
push eax
push esi
call fcn.10087030
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ecx, 0x101a8848
mov dword [eax*4 + 0x107dd000], 0xe
mov eax, dword [esp + 0x2c]
push 0x124
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x30]
imul esi, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
add esi, dword [esp + 0x34]
call fcn.1003fea0
push eax
push esi
call fcn.10087030
mov eax, dword [esp + 0x34]
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x38], eax
add ecx, dword [esp + 0x3c]
push ecx
call fcn.10087030
add esp, 0x10
inc dword [esp + 0x34]
mov eax, dword [ebp + 0x18]
cmp eax, 4
je 0x10083e70
cmp eax, 5
jne 0x10084121
push ebx
mov eax, 0x5c8780
call eax
add esp, 4
test al, al
jne 0x10084121
movsx ecx, byte [ebx + 0x44]
movsx eax, byte [ebx + 0x43]
mov dword [esp + 0x44], 0
lea esi, [ecx*8 + 0xcc]
add esi, eax
mov eax, 0x790aa0
call eax
push eax
lea eax, [esp + 0x48]
push eax
push esi
mov eax, 0x4fa7c0
call eax
add esp, 0xc
cmp al, 1
jne 0x1008402f
movd xmm0, dword [esp + 0x44]
lea eax, [esp + 0x90]
push 0
push eax
cvtdq2pd xmm0, xmm0
sub esp, 8
mov eax, 0x5c1170
movsd qword [esp], xmm0
call eax
add esp, 0x10
lea eax, [esp + 0x90]
mov ecx, 0x8128adc
push eax
push 0x3f
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
add eax, dword [esp + 0x38]
push eax
call fcn.10099f00
mov eax, dword [esp + 0x50]
add esp, 0xc
cmp eax, 0x989680
jge 0x10083f4a
cmp eax, 0xf4240
jge 0x10083f39
xor edx, edx
mov ecx, 4
cmp eax, 0x186a0
mov eax, dword [esp + 0x2c]
cmovl ecx, edx
mov dword [eax*4 + 0x107dd000], ecx
jmp 0x10083f59
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dd000], 3
jmp 0x10083f59
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dd000], 2
mov eax, dword [esp + 0x2c]
push 0x100e3b74
mov byte [esp + 0x60], 1
mov dword [eax*4 + 0x107dd000], 8
mov eax, dword [esp + 0x30]
mov dword [eax*4 + 0x107dcf10], 1
mov ecx, dword [esp + 0x30]
inc ecx
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
imul eax, ecx, 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
inc dword [esp + 0x3c]
add esp, 8
mov eax, dword [0x8128ac4]
mov eax, dword [eax + 0x1744]
cmp eax, dword [esp + 0x44]
jge 0x10084121
mov eax, 0x790aa0
call eax
cmp eax, 2
jne 0x10084121
mov eax, dword [esp + 0x2c]
mov ecx, 0x8128adc
push 0x1a7
mov dword [eax*4 + 0x107dd000], 2
mov eax, dword [esp + 0x30]
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x30]
imul esi, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
mov eax, 0x402320
add esi, dword [esp + 0x34]
call eax
push eax
push esi
call fcn.10087030
mov eax, dword [esp + 0x34]
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x38], eax
add ecx, dword [esp + 0x3c]
push ecx
call fcn.10087030
add esp, 0x10
jmp 0x1008411d
mov eax, 0x790aa0
call eax
cmp eax, 1
jne 0x10084121
mov eax, dword [esi*8 + 0x102b85d8]
test eax, eax
jle 0x100840b1
push eax
lea eax, [esp + 0x13c]
push 0x100e3c70
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ecx, 0x8128adc
mov dword [eax*4 + 0x107dd000], 8
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x2c]
imul esi, eax, 0x64
inc eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x138]
push eax
push 0x3f
mov eax, 0x402320
add esi, dword [esp + 0x38]
call eax
push eax
push esi
call fcn.10099f00
add esp, 0xc
jmp 0x100840fa
mov eax, dword [esp + 0x2c]
mov ecx, 0x8128adc
push 0x44d
mov dword [eax*4 + 0x107dd000], 2
mov eax, dword [esp + 0x30]
mov dword [eax*4 + 0x107dcf10], 1
mov eax, dword [esp + 0x30]
imul esi, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
mov eax, 0x402320
add esi, dword [esp + 0x34]
call eax
push eax
push esi
call fcn.10087030
add esp, 8
mov eax, dword [esp + 0x2c]
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
add esp, 8
mov byte [esp + 0x5c], 1
inc dword [esp + 0x34]
movsx eax, byte [ebx + 0x18]
push eax
movsx eax, word [ebx]
push eax
lea eax, [esp + 0xd8]
push eax
mov eax, 0x588d70
call eax
mov edx, 0x4e9210
mov ecx, eax
call edx
test al, al
je 0x1008418d
movzx eax, word [ebx]
push eax
mov eax, 0x7e7820
call eax
test al, al
jne 0x1008418d
lea edx, [edi + 4]
mov esi, edx
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x10084160
lea edi, [esp + 0xd0]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10084171
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x50]
jmp 0x100841ad
lea ecx, [edi + 4]
lea edx, [esp + 0xd0]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x100841a0
test byte [ebx + 0x17], 0x3f
jbe 0x10084279
movzx eax, word [ebx]
push eax
mov eax, 0x7e7820
call eax
test al, al
jne 0x10084279
movzx eax, word [ebx]
push eax
mov eax, 0x7e7870
call eax
test al, al
jne 0x10084279
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x11bb64], 0xffffffff
jne 0x10084256
test byte [esp + 0x4c], 0x78
lea eax, [esp + 0xd0]
mov ecx, 0x8128adc
je 0x1008422d
push dword [esp + 0x54]
push eax
push 0x26c
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x38], 0x64
mov esi, 0x9cf6aa
push str._s__s__d
add eax, dword [esp + 0x40]
push eax
call esi
add esp, 0x14
jmp 0x100842c5
push eax
push 0x26c
mov eax, 0x402320
call eax
push eax
push str._s__s
imul eax, dword [esp + 0x38], 0x64
mov esi, 0x9cf6aa
add eax, dword [esp + 0x3c]
push eax
call esi
add esp, 0x10
jmp 0x100842c5
mov eax, dword [esp + 0x40]
mov esi, 0x9cf6aa
add eax, 2
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call esi
add esp, 8
mov ecx, 1
jmp 0x100842c9
cmp word [edi + 0x4a], 0xffff
jne 0x100842a9
test byte [esp + 0x4c], 0x78
je 0x100842a0
cmp byte [edi + 0x48], 0
je 0x100842a0
push dword [esp + 0x54]
lea eax, [esp + 0xd4]
push eax
push str._s__d
jmp 0x10084240
lea eax, [esp + 0xd0]
jmp 0x100842b0
mov eax, dword [esp + 0x40]
add eax, 2
push eax
imul eax, dword [esp + 0x30], 0x64
mov esi, 0x9cf6aa
add eax, dword [esp + 0x34]
push eax
call esi
add esp, 8
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dd000], ecx
cmp word [edi + 0x4a], 0xffff
jne 0x100842e1
movzx ecx, byte [edi + 0x45]
jmp 0x100842e9
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0x43]
mov eax, dword [esp + 0x2c]
push 0x100e3b74
mov dword [eax*4 + 0x107dcf10], ecx
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
imul eax, eax, 0x64
add eax, dword [esp + 0x34]
push eax
call esi
mov ecx, dword [esp + 0x34]
inc dword [esp + 0x3c]
inc ecx
push 0x100e3b74
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
imul eax, ecx, 0x64
add eax, dword [esp + 0x3c]
push eax
call esi
inc dword [esp + 0x44]
lea eax, [esp + 0x44]
add esp, 0x10
push 1
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.10086e10
movsx eax, word [ebx]
sub eax, 0x1a1d
je 0x10084616
sub eax, 0x29
je 0x1008459f
sub eax, 0x1d6
je 0x10084587
cmp word [edi + 0x4a], 0xffff
jne 0x10084469
lea esi, [edi + 0x4f]
mov dword [esp + 0x44], 0xc
nop dword [eax]
movsx edi, word [esi - 3]
cmp edi, 0x400
ja 0x10084456
xor edx, edx
mov ecx, 0x1069aaa0
movzx eax, word [ecx]
cmp edi, eax
je 0x100843b2
add ecx, 0x104
inc edx
cmp ecx, 0x106dbaa0
jl 0x10084397
jmp 0x10084456
imul eax, edx, 0x104
add eax, 0x1069aaa0
je 0x10084456
movzx ecx, word [eax + 0x102]
lea edx, [eax + 2]
cmp cx, 0xffff
je 0x10084439
movsx eax, byte [esi - 1]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x64]
push dword [eax + 0x11bb64]
movsx eax, cx
push dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
push dword [esp + 0x68]
push ebx
push eax
movsx eax, byte [esi]
push eax
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x48]
push edx
call fcn.10085130
push eax
lea eax, [esp + 0x13c]
push 0x100
push eax
call fcn.100bf2ed
movsx eax, byte [esi]
add esp, 0xc
push 1
push eax
push dword [esp + 0x54]
lea eax, [esp + 0x144]
push dword [esp + 0x38]
push 1
push eax
jmp 0x1008444b
movsx eax, byte [esi]
push 0
push eax
movsx eax, byte [esi - 1]
push eax
push dword [esp + 0x38]
push 1
push edx
mov eax, 0x819ef0
call eax
mov dword [esp + 0x2c], eax
add esi, 4
sub dword [esp + 0x44], 1
jne 0x10084380
jmp 0x1008483c
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
add edi, 0x49
add esi, 0x4e
mov dword [esp + 0x44], 8
mov dword [esp + 0x40], esi
mov eax, esi
nop word [eax + eax]
movsx esi, word [edi - 3]
cmp esi, 0x400
ja 0x1008456d
xor edx, edx
mov ecx, 0x1069aaa0
movzx eax, word [ecx]
cmp esi, eax
je 0x100844c2
add ecx, 0x104
inc edx
cmp ecx, 0x106dbaa0
jl 0x100844a7
jmp 0x10084569
imul eax, edx, 0x104
add eax, 0x1069aaa0
je 0x10084569
movzx ecx, word [eax + 0x102]
lea edx, [eax + 2]
cmp cx, 0xffff
je 0x1008454c
mov eax, dword [esp + 0x40]
movsx eax, byte [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x64]
push dword [eax + 0x11bb64]
movsx eax, cx
push dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
push dword [esp + 0x68]
push ebx
push eax
movsx eax, byte [edi]
push eax
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x48]
push edx
call fcn.10085130
push eax
lea eax, [esp + 0x13c]
push 0x100
push eax
call fcn.100bf2ed
movsx eax, byte [edi]
add esp, 0xc
push 1
push eax
push dword [esp + 0x54]
lea eax, [esp + 0x144]
push dword [esp + 0x38]
push 1
push eax
jmp 0x1008455e
movsx eax, byte [edi]
push 0
push eax
movsx eax, byte [edi - 1]
push eax
push dword [esp + 0x38]
push 1
push edx
mov eax, 0x819ef0
call eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
add eax, 4
add edi, 4
sub dword [esp + 0x44], 1
mov dword [esp + 0x40], eax
jne 0x10084490
jmp 0x1008483c
push dword [esp + 0x2c]
mov eax, 0x8ff400
push ebx
call eax
add esp, 8
mov dword [esp + 0x2c], eax
jmp 0x1008483c
push 0xa2c
mov ecx, 0x8128adc
mov edi, 0x402320
call edi
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call esi
mov eax, dword [esp + 0x34]
add esp, 8
mov dword [eax*4 + 0x107dd000], 1
mov al, byte [ebx + 0x16]
inc dword [esp + 0x2c]
cmp al, 2
jne 0x10084607
push 0xa2d
mov ecx, 0x8128adc
call edi
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call esi
mov eax, dword [esp + 0x34]
mov dword [eax*4 + 0x107dd000], 1
jmp 0x10084835
cmp al, 1
jne 0x1008483c
push 0xa2e
jmp 0x100845df
xor eax, eax
mov dword [esp + 0x4c], eax
mov eax, dword [0x107dcee0]
movzx eax, byte [eax + 0xb]
push eax
mov eax, 0x405230
call eax
add esp, 4
cmp al, 3
je 0x1008463c
cmp al, 4
je 0x1008463c
cmp al, 6
jne 0x10084644
mov dword [esp + 0x4c], 6
mov eax, dword [esp + 0x2c]
mov ecx, 0x8128adc
push 0x3a8
mov ebx, 0x402320
mov dword [eax*4 + 0x107dd000], 0
call ebx
push eax
push 0x3a7
mov ecx, 0x8128adc
call ebx
push eax
push 0x47b
mov ecx, 0x8128adc
call ebx
push eax
imul eax, dword [esp + 0x38], 0x64
push str._s______s_________s
add eax, dword [esp + 0x40]
push eax
call fcn.10087030
mov eax, dword [esp + 0x40]
add esp, 0x14
mov ebx, dword [esp + 0x4c]
mov dword [eax*4 + 0x107dd000], 0
mov edx, dword [esp + 0x2c]
inc edx
xor esi, esi
mov dword [esp + 0x2c], edx
nop dword [eax]
nop dword [eax + eax]
push dword [esi*4 + 0xd45828]
lea edi, [esi + ebx]
mov ecx, 0x190
mov eax, dword [edi*8 + 0xd457cc]
cmp eax, ecx
cmovle ecx, eax
cmp esi, 5
lea eax, [esi + 1]
cmove ecx, dword [0x102bc310]
push ecx
push dword [edi*8 + 0xd457c8]
mov dword [esp + 0x58], eax
push eax
imul eax, edx, 0x64
push str.___________d______________03d_03d________3d_000
add eax, dword [esp + 0x44]
push eax
call fcn.10087030
mov ecx, dword [0x107dcee0]
add esp, 0x18
movzx eax, word [ecx + 0xe]
cmp eax, dword [edi*8 + 0xd457c8]
jl 0x10084753
cmp eax, dword [edi*8 + 0xd457cc]
jg 0x10084753
cmp dword [0x102bc234], 1
mov edi, 0x5878e0
je 0x10084742
movzx eax, byte [ecx + 0xb]
push eax
call edi
add esp, 4
test al, al
jne 0x10084758
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dd000], 8
jmp 0x10084767
mov edi, 0x5878e0
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dd000], 0
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x4c]
inc edx
mov dword [esp + 0x2c], edx
cmp esi, 6
jl 0x100846c0
cmp dword [0x102bc234], 1
mov ebx, dword [esp + 0x68]
je 0x100847e4
push 0x3e8
push 0x2e1
mov ecx, 0x8128adc
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
push 7
push str.___________d___________s___5d_000
add eax, dword [esp + 0x40]
push eax
call fcn.10087030
mov eax, dword [0x107dcee0]
add esp, 0x14
movzx eax, byte [eax + 0xb]
push eax
call edi
xor ecx, ecx
add esp, 4
cmp al, 1
mov edx, 8
mov eax, dword [esp + 0x2c]
cmove ecx, edx
mov dword [eax*4 + 0x107dd000], ecx
mov edx, dword [esp + 0x2c]
inc edx
mov esi, 0x9cf6aa
imul eax, edx, 0x64
push 0x100e3b74
mov dword [esp + 0x30], edx
add eax, dword [esp + 0x34]
push eax
call esi
inc dword [esp + 0x3c]
add esp, 8
inc dword [esp + 0x2c]
mov ecx, 0x8128adc
mov eax, 0x402320
push 0x485
call eax
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call esi
mov eax, dword [esp + 0x34]
mov dword [eax*4 + 0x107dd000], 7
add esp, 8
inc dword [esp + 0x2c]
push 2
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.10086e10
movzx eax, word [ebx]
push eax
mov eax, 0x5c01b0
call eax
add esp, 4
cmp al, 1
jne 0x10084875
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x68]
mov eax, 0x7e7060
call eax
push 3
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.10086e10
cmp byte [ebx + 0x49], 0
je 0x1008499a
cmp dword [0x102bc328], 1
je 0x100848ad
movzx eax, word [ebx]
push eax
mov eax, 0x7e7870
call eax
test al, al
jne 0x1008499a
mov eax, 0x50bd10
lea ecx, [esp + 0x78]
call eax
mov ecx, dword [0xe82c30]
test ecx, ecx
je 0x1008498f
movsx eax, word [ebx]
push eax
lea eax, [esp + 0x7c]
push eax
mov eax, 0x4083f0
call eax
mov eax, dword [esp + 0x2c]
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
inc dword [esp + 0x3c]
lea ecx, [esp + 0x80]
add esp, 8
mov edi, 0x408810
xor esi, esi
call edi
test eax, eax
jle 0x1008496d
mov ebx, 0x50bde0
push esi
lea ecx, [esp + 0x7c]
call ebx
mov ecx, eax
mov eax, 0x402880
call eax
push eax
imul eax, dword [esp + 0x30], 0x64
push 0x100e3b78
add eax, dword [esp + 0x38]
push eax
call fcn.10087030
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x84]
add esp, 0xc
inc esi
mov dword [eax*4 + 0x107dd000], 0xb
mov eax, dword [esp + 0x2c]
mov dword [eax*4 + 0x107dcf10], 1
inc dword [esp + 0x2c]
call edi
cmp esi, eax
jl 0x10084911
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
add esp, 8
inc dword [esp + 0x34]
mov eax, 0x50bd70
lea ecx, [esp + 0x78]
call eax
cmp dword [0x102bc320], 1
je 0x100849b6
xor eax, eax
cmp byte [ebx + eax + 0x4a], 0xff
jne 0x10084b9b
inc eax
cmp eax, 5
jl 0x100849a5
cmp word [ebx + 0x45], 0
je 0x10084b9b
movsx eax, word [ebx]
push eax
mov eax, 0x47bcf0
call eax
mov edi, eax
cmp edi, 3
jge 0x10084b9b
movzx ecx, word [ebx + 0x45]
mov eax, 0x47bd70
push ecx
push edi
call eax
test al, al
mov eax, dword [esp + 0x2c]
push 0x100e3b74
je 0x10084acd
imul ecx, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
movzx eax, word [ebx + 0x45]
add esp, 8
inc dword [esp + 0x34]
mov ecx, dword [0xe82c2c]
push eax
push edi
mov eax, 0x47c170
call eax
lea esi, [esp + 0x138]
mov edx, 0xb4
sub esi, eax
nop
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [esi + eax - 1], cl
sub edx, 1
jne 0x10084a30
cmp edi, 2
jne 0x10084a4f
cmp word [ebx + 0x45], 7
mov edx, str._s__d__
je 0x10084a54
mov edx, str._s__d
movsx eax, word [ebx + 0x47]
imul ecx, dword [esp + 0x2c], 0x64
mov eax, dword [esp + eax*4 + 0x17c]
push eax
add ecx, dword [esp + 0x34]
lea eax, [esp + 0x140]
push eax
push edx
push ecx
call fcn.10087030
movsx eax, word [ebx + 0x47]
mov edx, 0xa
cmp dword [esp + 0x64], eax
mov ecx, 3
mov eax, dword [esp + 0x3c]
cmovl ecx, edx
push 0x100e3b74
mov dword [eax*4 + 0x107dd000], ecx
mov eax, dword [esp + 0x40]
mov dword [eax*4 + 0x107dcf10], 1
mov ecx, dword [esp + 0x40]
inc ecx
lea eax, [ecx + 1]
mov dword [esp + 0x40], eax
imul eax, ecx, 0x64
add eax, dword [esp + 0x44]
push eax
call fcn.10087030
add esp, 0x18
jmp 0x10084b97
imul ecx, eax, 0x64
inc eax
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
movsx eax, word [ebx + 0x47]
add esp, 8
inc dword [esp + 0x34]
mov ecx, 0x8128adc
mov esi, 0x402320
push eax
movzx eax, word [ebx + 0x45]
push eax
push edi
push 0x89c
call esi
push eax
imul eax, dword [esp + 0x3c], 0x64
push str._s_:__d__d__d
add eax, dword [esp + 0x44]
push eax
call fcn.10087030
mov eax, dword [esp + 0x44]
add esp, 0x18
mov ecx, 0x8128adc
mov dword [eax*4 + 0x107dd000], 5
mov eax, dword [esp + 0x2c]
push 0x89d
mov dword [eax*4 + 0x107dcf10], 1
inc dword [esp + 0x30]
call esi
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
mov eax, dword [esp + 0x34]
push 0x100e3b74
mov dword [eax*4 + 0x107dd000], 5
mov eax, dword [esp + 0x38]
mov dword [eax*4 + 0x107dcf10], 1
mov ecx, dword [esp + 0x38]
inc ecx
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
imul eax, ecx, 0x64
add eax, dword [esp + 0x3c]
push eax
call fcn.10087030
add esp, 0x10
inc dword [esp + 0x34]
push dword [esp + 0x2c]
mov eax, 0x4eadd0
push ebx
call eax
mov edx, eax
mov ecx, 0x1a6d
mov al, byte [ebx + 0x25]
mov dword [esp + 0x2c], edx
lea esi, [ecx + 6]
test al, al
jle 0x10084da7
movzx eax, word [ebx]
cmp ax, cx
jl 0x10084bcd
cmp ax, si
jle 0x10084bff
imul eax, edx, 0x64
inc edx
push 0x100e3b74
mov dword [esp + 0x30], edx
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
mov al, byte [ebx + 0x25]
add esp, 8
inc dword [esp + 0x34]
mov ecx, 0x1a6d
mov edx, dword [esp + 0x2c]
test al, al
jle 0x10084da7
mov eax, 0xffffffca
lea esi, [ebx + 0x36]
sub eax, ebx
lea edi, [ebx + 0x26]
mov dword [esp + 0x60], eax
movzx eax, word [ebx]
cmp ax, cx
jl 0x10084c26
mov ecx, 0x1a73
cmp ax, cx
jle 0x10084da7
push 0
push 0
lea eax, [esp + 0x70]
push eax
movzx eax, word [edi]
push 0
push 1
push eax
mov eax, 0x5961f0
call eax
push dword [esp + 0x80]
movzx eax, byte [esi]
push eax
movzx eax, word [edi]
push eax
imul eax, dword [esp + 0x50], 0x64
add eax, dword [esp + 0x54]
push eax
movsx eax, word [ebx]
push eax
mov eax, 0x5c2f70
call eax
mov eax, dword [esp + 0x58]
add esp, 0x2c
mov dword [eax*4 + 0x107dd000], 1
mov edx, dword [esp + 0x2c]
movzx eax, word [edi]
inc edx
mov dword [esp + 0x2c], edx
cmp eax, 0x55
jne 0x10084cbe
movzx eax, byte [esi]
mov ecx, 0x8128adc
push eax
push 0x5e
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
add eax, dword [esp + 0x38]
push eax
call fcn.10087030
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [eax*4 + 0x107dd000], 1
jmp 0x10084d83
cmp eax, 0x31
jne 0x10084ccd
push 0xb3
jmp 0x10084d55
cmp eax, 0x3e
je 0x10084d50
mov ecx, 0x1fe
cmp ax, cx
je 0x10084d50
mov ecx, 0x204
cmp ax, cx
je 0x10084d50
mov ecx, 0x200
cmp ax, cx
je 0x10084d50
cmp eax, 0x50
jne 0x10084d8c
movzx eax, word [ebx]
cmp ax, 0x1f
je 0x10084d1a
cmp ax, 0x15
je 0x10084d1a
cmp ax, 0x17
je 0x10084d1a
cmp ax, 0x19
je 0x10084d1a
cmp ax, 0x1c
jne 0x10084d8c
movzx eax, byte [esi]
mov ecx, 0x8128adc
push eax
push 0x59
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x34], 0x64
add eax, dword [esp + 0x38]
push eax
call fcn.10087030
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [eax*4 + 0x107dd000], 1
jmp 0x10084d83
push 0x4b1
mov ecx, 0x8128adc
mov eax, 0x402320
call eax
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
mov eax, dword [esp + 0x34]
add esp, 8
mov dword [eax*4 + 0x107dd000], 5
mov edx, dword [esp + 0x2c]
inc edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x60]
inc esi
movsx eax, byte [ebx + 0x25]
add ecx, esi
add edi, 2
cmp ecx, eax
mov ecx, 0x1a6d
jl 0x10084c10
imul eax, edx, 0x64
inc edx
push 0x100e3b74
mov dword [esp + 0x30], edx
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
inc dword [esp + 0x3c]
add esp, 8
cmp byte [ebx + 0x61], 1
jne 0x10084e67
cmp byte [ebx + 0x62], 1
mov ecx, 0x8128adc
mov eax, 0x402320
jne 0x10084e0a
push 0xcc2
call eax
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
mov eax, dword [esp + 0x34]
add esp, 8
mov dword [eax*4 + 0x107dd000], 2
jmp 0x10084e63
push 0xcc1
call eax
push eax
imul eax, dword [esp + 0x30], 0x64
add eax, dword [esp + 0x34]
push eax
call fcn.10087030
mov eax, dword [esp + 0x34]
push dword [esp + 0x40]
push str._Y__m__d___H:_M
mov dword [eax*4 + 0x107dd000], 0xd
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
imul eax, eax, 0x64
push 0x64
add eax, dword [esp + 0x44]
push eax
call fcn.100c14d0
mov eax, dword [esp + 0x44]
add esp, 0x18
mov dword [eax*4 + 0x107dd000], 1
inc dword [esp + 0x2c]
push 4
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.10086e10
cmp byte [ebp + 0x1c], 0
jne 0x10085005
mov eax, 0x861110
call eax
mov edx, 0x861260
mov ecx, eax
call edx
mov edx, 0x83bf60
mov ecx, eax
call edx
cmp eax, 0xffffffff
je 0x10084eab
mov byte [esp + 0x38], 0
cmp eax, 0xb
jbe 0x10084eb0
mov byte [esp + 0x38], 1
push dword [esp + 0x38]
mov eax, 0x588d70
push dword [esp + 0x30]
push ebx
call eax
mov edx, 0x4ec410
mov ecx, eax
call edx
push eax
mov dword [esp + 0x30], eax
mov ecx, 0x986c1b8
push ebx
mov eax, 0x968880
call eax
imul ecx, eax, 0x64
inc eax
push 0x100e3b74
mov dword [esp + 0x30], eax
add ecx, dword [esp + 0x34]
push ecx
call fcn.10087030
inc dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x68], 0
mov edi, 0x41fe10
mov dword [esp + 0x6c], 0
movss xmm0, dword [0xe7c3d8]
cvtps2pd xmm0, xmm0
mov esi, dword [ebp + 0xc]
push dword [0xe8c588]
divsd xmm0, qword [0x100e6fb8]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x3c], xmm0
call edi
mov edx, 0x420120
mov ecx, eax
call edx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x34]
push 1
push eax
call edi
mov edx, 0x41ff80
mov ecx, eax
call edx
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov edi, dword [esp + 0x2c]
mov eax, edi
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
imul eax, ecx
imul ecx, dword [esp + 0x34]
movd xmm2, esi
cvtdq2ps xmm2, xmm2
movd xmm1, eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
mulsd xmm0, qword [0x100e6f60]
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x38]
cvtps2pd xmm0, xmm0
divsd xmm1, xmm0
movss xmm0, dword [0x100e77d0]
cvtpd2ps xmm1, xmm1
addss xmm1, xmm2
comiss xmm1, xmm0
jbe 0x10084fc4
subss xmm0, xmm1
addss xmm0, xmm2
cvttss2si esi, xmm0
push dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
test esi, esi
push 1
push 0
push 3
push 0
mov eax, 0x14
push edi
cmovs esi, eax
push esi
push dword [ebp + 8]
push ebx
call fcn.10086560
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.100b7755
mov esp, ebp
pop ebp
ret 0x18
push dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
push 1
push 8
push 3
push 0
push dword [esp + 0x40]
push 0
push 0
push ebx
call fcn.10086560
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x230]
xor ecx, esp
call fcn.100b7755
mov esp, ebp
pop ebp
ret 0x18
call eax
mov edx, 0x861260
mov ecx, eax
call edx
mov edx, 0x83bf60
mov ecx, eax
call edx
cmp eax, 1
jne 0x10085100
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edi, dword [esp + 0x58]
mov ecx, dword [edi + 4]
add ecx, 0x3e8
cmp eax, ecx
jbe 0x10085100
mov dword [esp + 0x39], 0
mov byte [esp + 0x3d], 0
mov dword [esp + 0x38], 0xa906c1
mov byte [esp + 0x3d], 1
jmp 0x100850e6
mov eax, 0x861110
call eax
mov edx, 0x861260
mov ecx, eax
call edx
mov edx, 0x83bf60
mov ecx, eax
call edx
cmp eax, 8
jne 0x10085100
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edi, dword [esp + 0x58]
mov ecx, dword [edi + 4]
add ecx, 0x3e8
cmp eax, ecx
jbe 0x10085100
mov dword [esp + 0x39], 0
mov byte [esp + 0x3d], 0
mov dword [esp + 0x38], 0x1a906c1
mov byte [esp + 0x3d], 8
mov eax, dword [ebp + 0x18]
lea ecx, [esp + 0x38]
mov edx, 6
mov byte [esp + 0x3c], al
call fcn.100aba10
call esi
mov dword [edi + 4], eax
push dword [ebp + 0x18]
mov eax, 0x4f9cb0
push ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call eax
mov ecx, dword [esp + 0x24c]
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100b7755
mov esp, ebp
pop ebp
ret 0x18