Function at 0x115c830
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, 0x1a98
call fcn.01194980
push esi
mov esi, dword [ebx + 0xc]
push edi
mov ecx, 0x388
lea edi, [ebp - 0xe38]
xor edx, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x144]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
cmp eax, edx
je 0x115c887
cmp byte [eax], 0x59
jne 0x115c887
mov dword [ebp - 0xa2c], edx
mov eax, dword [ecx + 0x10]
mov esi, dword [ebx + 8]
cmp eax, edx
je 0x115c8a7
push 0x14
push eax
mov eax, dword [esi + 0x91d8]
push 0xffffffffffffffff
push eax
call fcn.01030d00
mov dword [ebp - 0xc], eax
jmp 0x115c8aa
mov dword [ebp - 0xc], edx
mov edi, dword [ebx + 0x10]
mov eax, dword [edi + 0x13c]
test eax, eax
je 0x115c8c9
cmp byte [eax], 0x59
jne 0x115c8c9
lea ecx, [ebp - 0xe38]
push ecx
push esi
call fcn.0103eea0
mov eax, dword [edi + 0x1b8]
test eax, eax
je 0x115c8f6
cmp dword [ebp - 0xcb4], 0
jne 0x115c8e8
test dword [ebp - 0xd70], 0x200
jne 0x115c8f6
lea edx, [ebp - 0xe38]
push edx
push eax
push esi
call fcn.0114e7a0
cmp dword [ebx + 0x18], 0
je 0x115dc26
mov eax, dword [edi + 0xac]
mov ecx, dword [ebp - 0xce4]
xor edx, edx
mov dword [ebp - 8], ecx
cmp eax, edx
je 0x115cf03
mov esi, dword [edi + 0xa4]
mov dword [ebp - 0xce4], edx
mov dword [ebp - 0xca0], edx
mov dword [ebp - 0xc9c], edx
cmp esi, edx
je 0x115c95c
mov cl, byte [esi]
test cl, cl
je 0x115c95c
cmp cl, 0x59
je 0x115c94a
cmp cl, 0x79
je 0x115c94a
cmp cl, 0x4e
jne 0x115c956
mov dword [ebp - 0xce4], 0x20
jmp 0x115c95c
mov dword [ebp - 0xce4], edx
mov ecx, dword [edi + 0xa8]
cmp ecx, edx
je 0x115c991
mov cl, byte [ecx]
test cl, cl
je 0x115c991
cmp cl, 0x59
je 0x115c97b
cmp cl, 0x79
je 0x115c97b
cmp cl, 0x4e
jne 0x115c987
or dword [ebp - 0xce4], 0x80
jmp 0x115c991
and dword [ebp - 0xce4], 0xffffff7f
mov ecx, dword [edi + 0x94]
mov esi, 0xfffffffd
cmp ecx, edx
je 0x115c9c4
mov cl, byte [ecx]
test cl, cl
je 0x115c9c4
cmp cl, 0x59
je 0x115c9b5
cmp cl, 0x79
je 0x115c9b5
cmp cl, 0x4e
jne 0x115c9be
or dword [ebp - 0xce4], 2
jmp 0x115c9c4
and dword [ebp - 0xce4], esi
mov al, byte [eax]
test al, al
je 0x115c9ec
cmp al, 0x59
je 0x115c9d6
cmp al, 0x79
je 0x115c9d6
cmp al, 0x4e
jne 0x115c9e2
or dword [ebp - 0xce4], 0x200
jmp 0x115c9ec
and dword [ebp - 0xce4], 0xfffffdff
mov eax, dword [edi + 0xb0]
cmp eax, edx
je 0x115ca18
mov al, byte [eax]
test al, al
je 0x115ca18
cmp al, 0x59
je 0x115ca08
cmp al, 0x79
je 0x115ca08
cmp al, 0x4e
jne 0x115ca11
or dword [ebp - 0xce4], 1
jmp 0x115ca18
and dword [ebp - 0xce4], 0xfffffffe
mov eax, dword [edi + 0xb4]
cmp eax, edx
je 0x115ca47
mov al, byte [eax]
test al, al
je 0x115ca47
cmp al, 0x59
je 0x115ca34
cmp al, 0x79
je 0x115ca34
cmp al, 0x4e
jne 0x115ca41
mov edx, 2
or dword [ebp - 0xce4], edx
jmp 0x115ca4c
and dword [ebp - 0xce4], esi
mov edx, 2
mov eax, dword [edi + 0xb8]
xor esi, esi
cmp eax, esi
je 0x115ca80
mov al, byte [eax]
test al, al
je 0x115ca80
cmp al, 0x59
je 0x115ca6a
cmp al, 0x79
je 0x115ca6a
cmp al, 0x4e
jne 0x115ca76
or dword [ebp - 0xce4], 0x400
jmp 0x115ca80
and dword [ebp - 0xce4], 0xfffffbff
mov eax, dword [edi + 0xbc]
cmp eax, esi
je 0x115cab2
mov al, byte [eax]
test al, al
je 0x115cab2
cmp al, 0x59
je 0x115ca9c
cmp al, 0x79
je 0x115ca9c
cmp al, 0x4e
jne 0x115caa8
or dword [ebp - 0xce4], 0x800
jmp 0x115cab2
and dword [ebp - 0xce4], 0xfffff7ff
mov eax, dword [edi + 0xc0]
cmp eax, esi
je 0x115cade
mov al, byte [eax]
test al, al
je 0x115cade
cmp al, 0x59
je 0x115cace
cmp al, 0x79
je 0x115cace
cmp al, 0x4e
jne 0x115cad7
or dword [ebp - 0xce4], 0x40
jmp 0x115cade
and dword [ebp - 0xce4], 0xffffffbf
mov eax, dword [edi + 0xc4]
cmp eax, esi
je 0x115cb0a
mov al, byte [eax]
test al, al
je 0x115cb0a
cmp al, 0x59
je 0x115cafa
cmp al, 0x79
je 0x115cafa
cmp al, 0x4e
jne 0x115cb03
or dword [ebp - 0xce4], 4
jmp 0x115cb0a
and dword [ebp - 0xce4], 0xfffffffb
mov eax, dword [edi + 0xf0]
cmp eax, esi
je 0x115cb3c
mov al, byte [eax]
test al, al
je 0x115cb3c
cmp al, 0x59
je 0x115cb26
cmp al, 0x79
je 0x115cb26
cmp al, 0x4e
jne 0x115cb32
or dword [ebp - 0xce4], 0x1000
jmp 0x115cb3c
and dword [ebp - 0xce4], 0xffffefff
mov eax, dword [edi + 0xf4]
cmp eax, esi
je 0x115cb6e
mov al, byte [eax]
test al, al
je 0x115cb6e
cmp al, 0x59
je 0x115cb58
cmp al, 0x79
je 0x115cb58
cmp al, 0x4e
jne 0x115cb64
or dword [ebp - 0xce4], 0x10000000
jmp 0x115cb6e
and dword [ebp - 0xce4], 0xefffffff
mov eax, dword [edi + 0xf8]
cmp eax, esi
je 0x115cb98
mov al, byte [eax]
test al, al
je 0x115cb98
cmp al, 0x59
je 0x115cb8a
cmp al, 0x79
je 0x115cb8a
cmp al, 0x4e
jne 0x115cb92
mov dword [ebp - 0xca0], edx
jmp 0x115cb98
mov dword [ebp - 0xca0], esi
test byte [ebp - 0xce4], dl
je 0x115cbb3
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
mov dword [ecx + 0xa4c], esi
mov eax, dword [eax]
mov dword [eax + 0xa50], esi
mov eax, dword [edi + 0xfc]
cmp eax, esi
je 0x115cbe5
mov al, byte [eax]
test al, al
je 0x115cbe5
cmp al, 0x59
je 0x115cbcf
cmp al, 0x79
je 0x115cbcf
cmp al, 0x4e
jne 0x115cbdb
or dword [ebp - 0xce4], 0x2000
jmp 0x115cbe5
and dword [ebp - 0xce4], 0xffffdfff
mov eax, dword [edi + 0x104]
cmp eax, esi
je 0x115cc17
mov al, byte [eax]
test al, al
je 0x115cc17
cmp al, 0x59
je 0x115cc01
cmp al, 0x79
je 0x115cc01
cmp al, 0x4e
jne 0x115cc0d
or dword [ebp - 0xce4], 0x10000
jmp 0x115cc17
and dword [ebp - 0xce4], 0xfffeffff
mov ecx, dword [edi + 0x108]
cmp ecx, esi
je 0x115cc49
mov al, byte [ecx]
test al, al
je 0x115cc49
cmp al, 0x59
je 0x115cc33
cmp al, 0x79
je 0x115cc33
cmp al, 0x4e
jne 0x115cc3f
or dword [ebp - 0xce4], 0x100000
jmp 0x115cc49
and dword [ebp - 0xce4], 0xffefffff
mov eax, dword [edi + 0xc8]
cmp eax, esi
je 0x115cc7b
mov al, byte [eax]
test al, al
je 0x115cc7b
cmp al, 0x59
je 0x115cc65
cmp al, 0x79
je 0x115cc65
cmp al, 0x4e
jne 0x115cc71
or dword [ebp - 0xce4], 0x8000000
jmp 0x115cc7b
and dword [ebp - 0xce4], 0xf7ffffff
mov eax, dword [edi + 0xcc]
cmp eax, esi
je 0x115ccad
mov al, byte [eax]
test al, al
je 0x115ccad
cmp al, 0x59
je 0x115cc97
cmp al, 0x79
je 0x115cc97
cmp al, 0x4e
jne 0x115cca3
or dword [ebp - 0xce4], 0x400000
jmp 0x115ccad
and dword [ebp - 0xce4], 0xffbfffff
mov eax, dword [edi + 0xd0]
cmp eax, esi
je 0x115ccdf
mov al, byte [eax]
test al, al
je 0x115ccdf
cmp al, 0x59
je 0x115ccc9
cmp al, 0x79
je 0x115ccc9
cmp al, 0x4e
jne 0x115ccd5
or dword [ebp - 0xce4], 0x2000000
jmp 0x115ccdf
and dword [ebp - 0xce4], 0xfdffffff
mov eax, dword [edi + 0xd4]
cmp eax, esi
je 0x115cd11
mov al, byte [eax]
test al, al
je 0x115cd11
cmp al, 0x59
je 0x115ccfb
cmp al, 0x79
je 0x115ccfb
cmp al, 0x4e
jne 0x115cd07
or dword [ebp - 0xce4], 0x800000
jmp 0x115cd11
and dword [ebp - 0xce4], 0xff7fffff
mov eax, dword [edi + 0xd8]
cmp eax, esi
je 0x115cd3d
mov al, byte [eax]
test al, al
je 0x115cd3d
cmp al, 0x59
je 0x115cd2d
cmp al, 0x79
je 0x115cd2d
cmp al, 0x4e
jne 0x115cd36
or dword [ebp - 0xce4], 8
jmp 0x115cd3d
and dword [ebp - 0xce4], 0xfffffff7
mov eax, dword [edi + 0xdc]
cmp eax, esi
je 0x115cd6f
mov al, byte [eax]
test al, al
je 0x115cd6f
cmp al, 0x59
je 0x115cd59
cmp al, 0x79
je 0x115cd59
cmp al, 0x4e
jne 0x115cd65
or dword [ebp - 0xce4], 0x4000000
jmp 0x115cd6f
and dword [ebp - 0xce4], 0xfbffffff
mov eax, dword [edi + 0xe0]
cmp eax, esi
je 0x115cda1
mov al, byte [eax]
test al, al
je 0x115cda1
cmp al, 0x59
je 0x115cd8b
cmp al, 0x79
je 0x115cd8b
cmp al, 0x4e
jne 0x115cd97
or dword [ebp - 0xce4], 0x20000000
jmp 0x115cda1
and dword [ebp - 0xce4], 0xdfffffff
mov eax, dword [edi + 0xe4]
cmp eax, esi
je 0x115cdcd
mov al, byte [eax]
test al, al
je 0x115cdcd
cmp al, 0x59
je 0x115cdbd
cmp al, 0x79
je 0x115cdbd
cmp al, 0x4e
jne 0x115cdc6
or dword [ebp - 0xca0], 1
jmp 0x115cdcd
and dword [ebp - 0xca0], 0xfffffffe
mov eax, dword [edi + 0xe8]
cmp eax, esi
je 0x115cdf9
mov al, byte [eax]
test al, al
je 0x115cdf9
cmp al, 0x59
je 0x115cde9
cmp al, 0x79
je 0x115cde9
cmp al, 0x4e
jne 0x115cdf2
or dword [ebp - 0xca0], 4
jmp 0x115cdf9
and dword [ebp - 0xca0], 0xfffffffb
mov eax, dword [edi + 0x208]
cmp eax, esi
je 0x115ce24
mov al, byte [eax]
test al, al
je 0x115ce24
cmp al, 0x59
je 0x115ce15
cmp al, 0x79
je 0x115ce15
cmp al, 0x4e
jne 0x115ce1d
or dword [ebp - 0xc9c], edx
jmp 0x115ce24
and dword [ebp - 0xc9c], 0xfffffffd
cmp ecx, esi
je 0x115ce3c
mov al, byte [ecx]
cmp al, 0x47
je 0x115ce32
cmp al, 0x67
jne 0x115ce3c
or dword [ebp - 0xce4], 0x1100000
mov ecx, dword [edi + 0x100]
cmp ecx, esi
je 0x115ce9a
mov al, byte [ecx]
cmp al, 0x59
je 0x115ce54
cmp al, 0x79
je 0x115ce54
cmp al, 0x4e
jne 0x115ce7d
mov eax, dword [edi + 0x10c]
test eax, eax
je 0x115ce71
push 0x1023668
push eax
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x115ce90
or dword [ebp - 0xce4], 0x4000
jmp 0x115ce9a
push 0x1023660
push ecx
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
jne 0x115ce9a
or dword [ebp - 0xce4], 0x8000
mov eax, dword [edi + 0x10c]
test eax, eax
je 0x115cec1
push 0x1023658
push eax
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
jne 0x115cec1
or dword [ebp - 0xce4], 0x200000
test dword [ebp - 0xce4], 0x8000
je 0x115cee1
mov ecx, dword [ebx + 8]
mov edx, dword [ecx]
push 1
add edx, 0xa3c
push edx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
mov ecx, dword [ebp - 0xce4]
test ecx, 0x10000
je 0x115cf03
test ecx, 0xc000
je 0x115cf03
or ecx, 0x100000
mov dword [ebp - 0xce4], ecx
mov eax, dword [ebp - 8]
test al, 4
jne 0x115cf1d
test byte [ebp - 0xce4], 4
je 0x115cf1d
mov dword [ebp - 0x144], 1
test eax, 0x8000
jne 0x115cf55
test ecx, 0x8000
je 0x115cf55
mov esi, dword [ebx + 8]
push 4
lea eax, [ebp - 4]
push eax
push 4
push 0x1021160
push 0x1015934
push connect
push esi
mov dword [ebp - 4], 1
call fcn.010b9db0
jmp 0x115cf58
mov esi, dword [ebx + 8]
cmp dword [edi + 0xac], 0
je 0x115cfa2
cmp dword [edi + 0xb4], 0
je 0x115cfa2
mov eax, dword [edi + 0xec]
and dword [ebp - 0xcac], 0xfffff7ff
test eax, eax
je 0x115cfa2
mov al, byte [eax]
cmp al, 0x41
jb 0x115cf90
cmp al, 0x5a
ja 0x115cf90
movsx eax, al
add eax, 0x20
jmp 0x115cf93
movsx eax, al
cmp eax, 0x79
jne 0x115cfa2
or dword [ebp - 0xcac], 0x800
mov ecx, dword [ebp - 0xce4]
cmp ecx, 0x100
jle 0x115cfb8
or ecx, 0x100
jmp 0x115cfd4
mov al, byte [ebp - 0xce4]
test al, 0x20
je 0x115cfda
test al, 2
jne 0x115cfce
or ecx, 0x40204
jmp 0x115cfd4
or ecx, 0x3e47
mov dword [ebp - 0xce4], ecx
test ecx, ecx
jne 0x115cfe7
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xce4], ecx
mov eax, dword [esi]
cmp dword [eax + 0xa54], 0
je 0x115d008
and ecx, 0xfffe3fff
mov dword [ebp - 0xce4], ecx
mov dword [eax + 0xa3c], 0
mov eax, dword [ebp - 0xce4]
cmp eax, dword [ebp - 8]
je 0x115d023
mov ecx, dword [ebp - 0xcac]
mov edx, dword [esi]
push ecx
push eax
push edx
call fcn.010d34a0
mov eax, dword [esi]
xor ecx, ecx
cmp dword [eax + 0xa4c], ecx
mov eax, 0x1000
je 0x115d042
test dword [ebp - 0xd70], eax
jne 0x115d042
or dword [ebp - 0xd70], eax
mov dword [ebp - 0xe24], ecx
test dword [ebp - 0xd70], eax
je 0x115d06a
or dword [ebp - 0xce4], 4
test byte [ebp - 0xce4], 2
jne 0x115d06a
mov dword [ebp - 0xe24], 1
mov eax, dword [edi + 0x40]
cmp eax, ecx
je 0x115d08d
mov al, byte [eax]
cmp al, 0x59
je 0x115d07b
cmp al, 0x79
jne 0x115d087
mov dword [ebp - 0x584], 1
jmp 0x115d08d
mov dword [ebp - 0x584], ecx
mov esi, dword [edi + 0x1c]
cmp esi, ecx
je 0x115d0bc
push 0x105
push ecx
lea ecx, [ebp - 0x558]
push ecx
call sub.msvcrt.dll_memset
push 0x103
lea edx, [ebp - 0x558]
push esi
push edx
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0x18
mov esi, dword [edi + 0x50]
test esi, esi
je 0x115d27e
push 0x20a
lea eax, [ebp - 0x1048]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x20a
lea ecx, [ebp - 0x1678]
push 0
push ecx
call sub.msvcrt.dll_memset
push 0x20a
lea edx, [ebp - 0x1258]
push 0
push edx
call sub.msvcrt.dll_memset
push 0x20a
lea eax, [ebp - 0x1888]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x20a
lea ecx, [ebp - 0x1468]
push 0
push ecx
call sub.msvcrt.dll_memset
push 0x20a
lea edx, [ebp - 0x1a98]
push 0
push edx
call sub.msvcrt.dll_memset
mov eax, edi
mov eax, dword [eax + 0x68]
add esp, 0x48
test eax, eax
je 0x115d15f
mov ecx, dword [ebx + 8]
mov edx, dword [ecx]
cmp dword [edx + 0xa6c], 0
je 0x115d15f
mov edi, eax
mov esi, 1
jmp 0x115d212
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x54]
mov edi, esi
test eax, eax
je 0x115d210
push eax
push 0x100cae4
lea ecx, [ebp - 0x1678]
push 0x103
push ecx
call fcn.0102d240
mov esi, dword [ebx + 0x10]
mov eax, dword [esi + 0x58]
add esp, 0x10
test eax, eax
je 0x115d210
push eax
push 0x100cae4
lea edx, [ebp - 0x1258]
push 0x103
push edx
call fcn.0102d240
mov eax, dword [esi + 0x5c]
add esp, 0x10
test eax, eax
je 0x115d210
push eax
push 0x100cae4
lea eax, [ebp - 0x1888]
push 0x103
push eax
call fcn.0102d240
mov eax, dword [esi + 0x60]
add esp, 0x10
test eax, eax
je 0x115d210
push eax
push 0x100cae4
lea ecx, [ebp - 0x1468]
push 0x103
push ecx
call fcn.0102d240
mov eax, dword [esi + 0x64]
add esp, 0x10
test eax, eax
je 0x115d210
push eax
push 0x100cae4
lea edx, [ebp - 0x1a98]
push 0x103
push edx
call fcn.0102d240
add esp, 0x10
xor esi, esi
push edi
push 0x100cae4
lea eax, [ebp - 0x1048]
push 0x103
push eax
call fcn.0102d240
add esp, 0x10
test esi, esi
je 0x115d249
mov edx, dword [ebx + 8]
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1048]
push ecx
push 1
push edx
jmp 0x115d279
lea eax, [ebp - 0x1a98]
push eax
lea ecx, [ebp - 0x1468]
push ecx
lea edx, [ebp - 0x1888]
push edx
lea eax, [ebp - 0x1258]
push eax
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x1678]
push ecx
lea edx, [ebp - 0x1048]
push edx
push 1
push eax
call fcn.01063ba0
mov edi, dword [ebx + 0x10]
mov esi, dword [edi + 0x6c]
test esi, esi
je 0x115d39a
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x84]
xor edi, edi
mov dword [ebp - 4], 1
test eax, eax
je 0x115d2b6
mov edx, dword [ebx + 8]
mov ecx, dword [edx]
cmp dword [ecx + 0xa6c], edi
je 0x115d2b6
mov esi, eax
mov edi, 1
mov edx, dword [ebx + 8]
mov eax, dword [edx]
add eax, 0xa80
jne 0x115d2c6
test esi, esi
jmp 0x115d2d7
test esi, esi
je 0x115d2d9
push esi
push eax
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x115d32d
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
push 0x105
add ecx, 0xa80
push 0
push ecx
call sub.msvcrt.dll_memset
mov edx, dword [ebx + 8]
mov eax, dword [edx]
add esp, 0xc
add eax, 0xa80
je 0x115d314
test esi, esi
je 0x115d314
push 0x103
push esi
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
mov eax, dword [ebx + 8]
push esi
push 0x1019c74
push 0x101599c
push connect
push eax
call fcn.010ba070
mov esi, dword [ebx + 8]
test edi, edi
jne 0x115d380
mov edi, dword [ebx + 0x10]
mov edx, dword [edi + 0x70]
lea ecx, [ebp - 4]
push ecx
push edx
push esi
call fcn.0103f220
mov ecx, dword [edi + 0x74]
lea eax, [ebp - 4]
push eax
push ecx
push esi
call fcn.0103f220
mov eax, dword [edi + 0x78]
lea edx, [ebp - 4]
push edx
push eax
push esi
call fcn.0103f220
mov edx, dword [edi + 0x7c]
lea ecx, [ebp - 4]
push ecx
push edx
push esi
call fcn.0103f220
mov ecx, dword [edi + 0x80]
lea eax, [ebp - 4]
push eax
push ecx
push esi
call fcn.0103f220
mov edx, dword [esi]
mov eax, dword [ebp - 4]
mov edi, dword [ebx + 0x10]
mov dword [edx + 0x10a0], eax
mov ecx, dword [esi]
mov dword [ecx + 0x10a4], 0
mov esi, dword [edi + 0x20]
test esi, esi
je 0x115d3ca
push 0x105
lea edx, [ebp - 0x453]
push 0
push edx
call sub.msvcrt.dll_memset
push 0x103
lea eax, [ebp - 0x453]
push esi
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0x18
mov esi, dword [edi + 0x24]
test esi, esi
je 0x115d3fa
push 0x105
lea ecx, [ebp - 0x34e]
push 0
push ecx
call sub.msvcrt.dll_memset
push 0x103
lea edx, [ebp - 0x34e]
push esi
push edx
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0x18
mov esi, dword [edi + 0x44]
test esi, esi
je 0x115d424
push 0x41
lea eax, [ebp - 0x5c7]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x3f
lea ecx, [ebp - 0x5c7]
push esi
push ecx
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0x18
mov esi, dword [edi + 0x48]
test esi, esi
je 0x115d454
push 0x105
lea edx, [ebp - 0x6cc]
push 0
push edx
call sub.msvcrt.dll_memset
push 0x103
lea eax, [ebp - 0x6cc]
push esi
push eax
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0x18
mov eax, dword [edi + 0x8c]
test eax, eax
je 0x115d467
movsx ecx, byte [eax]
mov dword [ebp - 0xce0], ecx
cmp dword [edi + 0x150], 0
jne 0x115d479
cmp dword [edi + 0x158], 0
je 0x115d483
mov edx, dword [ebx + 8]
push edi
push edx
call fcn.010bd340
mov eax, dword [edi + 0x88]
xor ecx, ecx
cmp eax, ecx
je 0x115d4ac
cmp byte [eax], 0x2d
jne 0x115d4f6
inc eax
push eax
mov dword [ebp - 0xcb4], ecx
call fcn.0102c3e0
mov dword [ebp - 0xc90], eax
jmp 0x115d533
mov eax, dword [edi + 0x110]
cmp eax, ecx
jne 0x115d48f
mov eax, dword [edi + 0x30]
cmp eax, ecx
je 0x115d50c
push 8
push 0x102364c
push eax
call fcn.0102ba60
test eax, eax
jne 0x115d50c
mov eax, dword [edi + 0x30]
push 0x1023644
push eax
call fcn.0102c110
test eax, eax
je 0x115d50c
mov dword [ebp - 0xcb4], 0
mov dword [ebp - 0xc90], 0x98967f
jmp 0x115d533
push eax
call fcn.0102c3e0
mov dword [ebp - 0xcb4], eax
mov dword [ebp - 0xc90], 0
mov ecx, dword [ebp - 0xcb4]
test ecx, ecx
je 0x115d533
mov eax, 0xc22e4507
mul ecx
shr edx, 0x10
imul edx, edx, 0x15180
mov eax, ecx
sub eax, edx
jne 0x115d533
dec ecx
mov dword [ebp - 0xcb4], ecx
mov eax, dword [edi + 0x10]
test eax, eax
je 0x115d566
push 8
push 0x1023638
push eax
call dword [sym.imp.msvcrt.dll__strnicmp]
add esp, 0xc
test eax, eax
je 0x115d558
cmp dword [ebp - 0xc], 0x8f36e881
jne 0x115d566
mov eax, 0x200
mov dword [ebp - 8], eax
mov dword [ebp - 0xce4], eax
test byte [ebp - 0xcac], 1
je 0x115d579
add dword [ebp - 0xcb4], 0x2a300
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + 0x35a8]
test eax, eax
je 0x115d5f7
test dword [eax + 0x138], 0x200
jne 0x115d5f7
mov eax, dword [ecx]
cmp dword [eax + 0xa64], 0
jne 0x115d5f7
cmp dword [eax + 0xa54], 0
jne 0x115d5f7
cmp dword [ebx + 0x1c], 0
je 0x115d5f7
cmp dword [ebp - 0xcb4], 0
ja 0x115d5c7
cmp dword [ebp - 0xc90], 0
jbe 0x115d5c7
or dword [ebp - 0x798], 0x40
jmp 0x115d5ce
and dword [ebp - 0x798], 0xffffffbf
cmp dword [ecx + 0x8aec], 0x1771
jb 0x115d5f7
mov eax, dword [ecx + 0x3588]
test eax, eax
je 0x115d5f0
push 1
add eax, 0x64
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
mov dword [ebp - 0x14], 1
cmp dword [edi + 0x16c], 0
je 0x115d637
mov esi, dword [ebx + 8]
push 0x105
add esi, 0x13498
push 0
push esi
call sub.msvcrt.dll_memset
mov eax, dword [edi + 0x16c]
add esp, 0xc
test esi, esi
je 0x115d637
test eax, eax
je 0x115d637
push 0x103
push eax
push esi
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
mov eax, dword [edi + 0x1a0]
test eax, eax
je 0x115d686
mov esi, dword [ebx + 8]
add esi, 0x15cb4
je 0x115d65b
push eax
push esi
call dword [sym.imp.msvcrt.dll__stricmp]
add esp, 8
test eax, eax
je 0x115d686
mov eax, dword [edi + 0x1a0]
test esi, esi
je 0x115d676
test eax, eax
je 0x115d676
push 0x3f
push eax
push esi
call dword [sym.imp.msvcrt.dll_strncpy]
add esp, 0xc
mov ecx, dword [edi + 0x1a0]
mov edx, dword [ebx + 8]
push ecx
push edx
call fcn.010bd2a0
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
cmp dword [ecx + 0xa44], 0
je 0x115d6a1
lea edx, [ebp - 0xe38]
push edx
push eax
call fcn.010bd120
mov eax, dword [ebp - 0xd70]
shr eax, 0x1d
push 0
and eax, 1
push eax
lea eax, [ebp - 0xe38]
push eax
push edi
call fcn.0103f0c0
mov esi, dword [edi + 0x118]
test esi, esi
je 0x115d6e8
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115d6d0
sub eax, edx
push eax
push esi
call fcn.0102c350
mov dword [ebp - 0x248], eax
jmp 0x115d6f2
mov dword [ebp - 0x248], 0
mov eax, dword [edi + 0x114]
mov esi, dword [ebp - 0xce4]
test eax, eax
je 0x115d739
mov al, byte [eax]
cmp al, 0x49
je 0x115d731
cmp al, 0x50
je 0x115d723
cmp al, 0x59
je 0x115d718
and esi, 0xfffdffef
jmp 0x115d769
and esi, 0xfff9ffff
or esi, 0x10
jmp 0x115d769
and esi, 0xfffbffef
or esi, 0x20000
jmp 0x115d769
and esi, 0xfffdffef
jmp 0x115d763
mov eax, dword [ebp - 8]
test al, 0x10
je 0x115d749
or esi, 0x10
mov dword [ebp - 0xce4], esi
test eax, 0x20000
je 0x115d75c
or esi, 0x20000
mov dword [ebp - 0xce4], esi
test eax, 0x40000
je 0x115d76f
or esi, 0x40000
mov dword [ebp - 0xce4], esi
mov edx, dword [edi + 0x130]
test edx, edx
je 0x115d801
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115d782
sub eax, edi
push eax
push edx
call fcn.0102c350
cmp eax, 0x65
jl 0x115d7a3
or dword [ebp - 0xcac], 0x200
jmp 0x115d7ad
and dword [ebp - 0xcac], 0xfffffdff
cmp eax, 5
je 0x115d7c1
cmp eax, 0x69
je 0x115d7c1
cmp eax, 4
je 0x115d7c1
cmp eax, 0x68
jne 0x115d801
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x10]
or dword [ebp - 0xd70], 0x200
or esi, 0x80000
mov dword [ebp - 0xce4], esi
test eax, eax
je 0x115d801
push 0x1023630
push eax
call fcn.0102c110
test eax, eax
je 0x115d801
mov edi, dword [ebx + 8]
mov edx, dword [edi]
mov dword [edx + 0xa48], 1
jmp 0x115d804
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 0x12c]
test esi, esi
je 0x115d84b
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115d816
sub eax, edx
push eax
push esi
call fcn.0102c350
add eax, 0xb179a800
cmp dword [ebp - 0xd68], 0
mov dword [edi + 0x16110], eax
jne 0x115d84b
push 0x100f498
push edi
mov dword [ebp - 0xd68], eax
call fcn.0111f330
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + 0x128]
test ecx, ecx
je 0x115d873
lea eax, [edi + 0x15a5d]
test eax, eax
je 0x115d873
mov esi, dword [sym.imp.msvcrt.dll_strncpy]
push 0x3f
push ecx
push eax
call esi
add esp, 0xc
jmp 0x115d879
mov esi, dword [sym.imp.msvcrt.dll_strncpy]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + 0x198]
test ecx, ecx
je 0x115d89c
lea eax, [edi + 0x15a9e]
test eax, eax
je 0x115d89c
push 0x103
push ecx
push eax
call esi
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x19c]
test ecx, ecx
je 0x115d8bf
lea eax, [edi + 0x15ba3]
test eax, eax
je 0x115d8bf
push 0x103
push ecx
push eax
call esi
add esp, 0xc
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x115d9dc
cmp byte [eax], 0
je 0x115d9dc
push eax
lea edx, [ebp - 0xcdc]
push edx
call fcn.0102baa0
test eax, eax
je 0x115d9dc
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x10]
push 0
push ecx
push edi
mov dword [ebp - 0x18], 1
call fcn.010bd540
push 0x51
push 8
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x10], esi
test esi, esi
je 0x115d941
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 0x10]
push 0x24
push eax
lea ecx, [esi + 0x29]
push ecx
call fcn.0102bd00
push 0x24
lea edx, [ebp - 0xcdc]
push edx
lea eax, [esi + 4]
push eax
call fcn.0102bd00
mov dword [esi], edi
mov esi, dword [ebx + 0x10]
mov ecx, dword [esi + 0x10]
push ecx
push edi
call fcn.010bd5f0
push 1
push edi
call fcn.010d0330
mov edx, dword [esi + 0x10]
xor eax, eax
push 0x24
mov dword [ebp - 0xcdc], eax
mov dword [ebp - 0xcd8], eax
mov dword [ebp - 0xcd4], eax
mov dword [ebp - 0xcd0], eax
mov dword [ebp - 0xccc], eax
mov dword [ebp - 0xcc8], eax
mov dword [ebp - 0xcc4], eax
mov dword [ebp - 0xcc0], eax
mov dword [ebp - 0xcbc], eax
mov byte [ebp - 0xcb8], al
push edx
lea eax, [ebp - 0xcdc]
push eax
call fcn.0102bd00
test byte [ebp - 0xa00], 0x40
jne 0x115d9dc
push 0x18
push edi
call fcn.010fa740
mov esi, eax
test esi, esi
je 0x115d9dc
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx + 0x10]
push edx
push esi
lea eax, [edi + 0x13354]
push 0
push eax
call fcn.0110e840
add esp, 0x10
push esi
call fcn.01083050
lea ecx, [ebp - 0xe38]
push ecx
call fcn.0103ef00
mov esi, dword [ebx + 0x10]
mov eax, dword [esi + 0x11c]
test eax, eax
je 0x115da01
cmp byte [eax], 0x59
jne 0x115da01
or dword [ebp - 0xcac], 0x40
mov edx, dword [esi + 0x14c]
test edx, edx
je 0x115da29
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115da10
sub eax, esi
push eax
push edx
call fcn.0102c350
mov esi, dword [ebx + 0x10]
mov dword [edi + 0x91cc], eax
mov eax, dword [esi + 0x148]
test eax, eax
je 0x115da5a
cmp byte [eax], 0x4e
jne 0x115da44
mov dword [edi + 0x91c8], 0
jmp 0x115da5a
push 0x102362c
push 0x10138a8
push eax
call fcn.01083c50
mov dword [edi + 0x91c8], eax
mov edx, dword [esi + 0x138]
test edx, edx
je 0x115da92
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115da70
sub eax, esi
push eax
push edx
mov edx, dword [edi + 0x91d8]
push 0xffffffffffffffff
push edx
call fcn.01030d00
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0xd74], eax
mov edx, dword [esi + 0x134]
test edx, edx
je 0x115dac2
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x115daa1
sub eax, esi
push eax
push edx
call fcn.0102c350
push eax
lea eax, [ebp - 0xe38]
push eax
push edi
call fcn.0103ed50
mov esi, dword [ebx + 0x10]
test dword [ebp - 0xce4], 0x2000000
je 0x115dafa
mov eax, dword [esi + 0x17c]
test eax, eax
je 0x115dafa
mov ecx, dword [edi + 0x2f808]
mov edx, dword [edi]
push ecx
push 1
push eax
push 4
push edx
call fcn.01061e10
cmp dword [ebp - 0x58], 0
jne 0x115dafa
push 4
push edi
call fcn.01061d80
mov edx, dword [esi + 0x174]
test edx, edx
je 0x115db83
test dword [ebp - 0xce4], 0x8000
jne 0x115db2a
mov eax, dword [edi]
cmp dword [eax + 0xa3c], 0
jne 0x115db2a
cmp dword [ebp - 0x68], 0
je 0x115db83
mov dword [ebp - 0x68], 0
jmp 0x115db83
mov esi, dword [edi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x35a8]
test eax, eax
je 0x115db75
cmp dword [eax + 0xe40], 0
jne 0x115db4a
cmp dword [ecx + 0x1ee98], 0
je 0x115db75
test byte [eax + 0x4a8], 0x80
je 0x115db75
push edx
call dword [sym.imp.msvcrt.dll_atol]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x35a8]
add esp, 4
cmp dword [edx + 0xe40], eax
je 0x115db75
push 2
push ecx
call fcn.01061d80
cmp dword [ebp - 0x68], 0
jne 0x115db83
push 2
push edi
call fcn.01061d80
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x168]
test edx, edx
je 0x115dc1c
test dword [ebp - 0xce4], 0x10000
je 0x115dc01
mov esi, dword [edi]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x35a8]
test eax, eax
je 0x115dbeb
cmp dword [eax + 0xe48], 0
jne 0x115dbc0
cmp dword [ecx + 0x1ee98], 0
je 0x115dbeb
test byte [eax + 0x4a8], 0x80
je 0x115dbeb
push edx
call dword [sym.imp.msvcrt.dll_atol]
mov esi, dword [esi]
mov ecx, dword [esi + 0x35a8]
add esp, 4
cmp dword [ecx + 0xe48], eax
je 0x115dbeb
push 3
push esi
call fcn.01061d80
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x115dbf7
cmp eax, 1
jne 0x115dc1c
push 3
push edi
call fcn.01061d80
jmp 0x115dc1c
cmp dword [ebp - 0x60], 0
je 0x115dc1c
mov edx, dword [edi]
mov eax, dword [edx]
push 1
push 0
push eax
call fcn.010d93e0
mov dword [ebp - 0x60], 0
mov dword [edi + 0x2f808], 0
mov ecx, dword [ebx + 8]
mov esi, dword [ecx]
cmp dword [esi + 0xa04], 0
mov dword [ebp - 0xc], esi
je 0x115dc3e
or dword [ebp - 0xd70], 2
mov eax, dword [esi + 0xa00]
test eax, eax
je 0x115dc4e
mov dword [ebp - 0xc68], eax
cmp dword [ebx + 0x14], 0
je 0x115dd66
mov edx, dword [ebx + 0xc]
lea eax, [ebp - 0xe38]
mov edi, eax
mov ecx, 0xe20
sub edx, edi
lea ebx, [ebx]
mov edi, dword [eax + edx]
cmp edi, dword [eax]
jne 0x115dc8d
sub ecx, 4
add eax, 4
cmp ecx, 4
jae 0x115dc70
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
lea eax, [esi + 0x92c]
mov dword [ebp - 8], eax
test eax, eax
je 0x115dcdc
push eax
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov edi, dword [ebx + 0xc]
lea edx, [ebp - 0xe38]
push edx
push edi
push esi
call fcn.0115ba50
mov eax, dword [ebp - 0xc]
mov ecx, 0x388
lea esi, [ebp - 0xe38]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x1eea8], 1
test eax, eax
je 0x115dcdc
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
cmp dword [ebp - 0x14], 0
mov edi, dword [ebx + 8]
je 0x115dcf1
mov edx, dword [edi]
push 0
push 1
push edx
call fcn.010d8a10
cmp dword [ebp - 0x18], 0
je 0x115dd8f
mov eax, dword [edi]
mov eax, dword [eax]
mov ecx, dword [eax + 0x3590]
push 0
push ecx
push eax
call fcn.01117f40
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x115dd8f
mov esi, dword [sym.imp.KERNEL32.DLL_CreateThread]
lea edx, [ebp - 0x10]
push edx
push 0
push eax
push 0x10fb610
push 0
push 0
call esi
test eax, eax
je 0x115dd3a
push eax
mov eax, dword [edi + 0x1c0]
call eax
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push 0
push eax
push 0x1108da0
push 0
push 0
call esi
test eax, eax
je 0x115dd8f
mov edx, dword [edi + 0x1c0]
push eax
call edx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
cmp dword [ebp - 0x14], 0
mov edi, dword [ebx + 0xc]
mov ecx, 0x388
lea esi, [ebp - 0xe38]
rep movsd dword es:[edi], dword [esi]
je 0x115dd8f
mov eax, dword [ebx + 8]
mov eax, dword [eax]
test eax, eax
je 0x115dd8f
push 0
push 1
push eax
call fcn.010d8a10
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18