Function at 0x401f97
Capabilities:
Create thread

Disassembly:
sub esp, 0x41c
push ebx
mov ebx, dword [0x4221d4]
push ebp
push esi
push edi
call ebx
mov edi, eax
or ecx, 0xffffffff
inc edi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x12c]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x32c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x2ac]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3ac]
push ecx
push edx
lea ecx, [esp + 0x234]
push eax
push ecx
call ebx
inc eax
push eax
call fcn.0040cafa
lea edi, [esp + 0x240]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x12c]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x12c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x2ac]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x12c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x42d48c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push 0x42d414
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00402a60
call fcn.0040c7c2
push eax
call fcn.0040c793
add esp, 4
call fcn.0040c7a0
mov esi, eax
shl esi, 0x10
sub esi, eax
add esi, 0xc8
push esi
call fcn.00402a20
mov edi, eax
cmp edi, 0xa
jmp 0x401c2a
mov eax, dword [0x42d648]
mov ecx, dword [0x42d644]
mov edx, dword [0x42d640]
push eax
mov eax, dword [0x42d63c]
push ecx
push edx
push eax
push esi
call fcn.00403d10
mov ebp, eax
mov al, byte [0x42d4a5]
add esp, 0x14
test al, al
je 0x401cae
push 0x42d480
push 0x42b274
call fcn.00402e20
push esi
call fcn.00402a20
mov edi, eax
mov eax, ebp
xor eax, edi
xor ecx, ecx
cmp eax, 3
mov dword [0x42d710], eax
sete cl
xor edx, edx
cmp eax, 2
sete dl
or ecx, edx
xor edx, edx
cmp eax, 1
sete dl
or ecx, edx
je 0x401cae
mov eax, dword [0x42b270]
push 0x42d480
push eax
call fcn.00402a70
push esi
call fcn.00402a20
mov edi, eax
mov al, byte [0x42d4a4]
test al, al
je 0x401cdb
push 0x42d480
push 0x15
call fcn.00402c80
cmp eax, dword [0x42d47c]
je 0x401cdb
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x41c
ret
xor ebx, ebx
xor ecx, ecx
cmp ebp, edi
setne cl
test cl, 1
jmp 0x401d05
cmp ebp, edi
jmp 0x401d19
mov al, byte [0x42d4a6]
push 0
test al, al
jne 0x401d2b
push 0x7d0
jmp 0x401d3d
mov eax, dword [0x42d638]
lea edx, [eax + eax*2]
lea eax, [eax + edx*8]
lea eax, [eax + eax*4]
shl eax, 3
push eax
mov ecx, dword [0x42d40c]
push 0x75bcd15
push ecx
call dword [0x42248c]
cmp dword [0x42d4a0], 0x4e
jne 0x401f8b
mov edi, 0x42d48c
or ecx, 0xffffffff
xor eax, eax
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
xor edi, edi
mov ebx, ecx
test ebx, ebx
jle 0x401d99
mov al, byte [esi + 0x42d48c]
cmp al, 0x2e
je 0x401d99
cmp al, 0x39
jle 0x401d94
movsx edx, al
push edx
call fcn.0040c9c0
add esp, 4
mov byte [esp + edi + 0x2c], al
inc edi
inc esi
cmp esi, ebx
jl 0x401d75
lea eax, [esp + 0x2c]
mov byte [esp + edi + 0x2c], 0
push eax
mov byte [esp + 0xb0], 0x5c
mov byte [esp + 0xb1], 0x73
mov byte [esp + 0xb2], 0x79
mov byte [esp + 0xb3], 0x6e
mov byte [esp + 0xb4], 0
call fcn.0040c990
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xac]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov al, 0x6c
and ecx, 3
lea edx, [esp + 0xac]
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x2e], al
mov byte [esp + 0x2f], al
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x2c], 0x2e
mov byte [esp + 0x2d], 0x64
mov byte [esp + 0x30], 0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x64
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push 0x42d5d4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [fcn.004221e4]
lea eax, [esp + 0xac]
push 0x80
push eax
push 0x42d5d4
call fcn.0040c670
lea edi, [esp + 0xb8]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0x138]
mov edx, ecx
mov esi, edi
mov edi, 0x42d570
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00402000
add esp, 0x10
test eax, eax
je 0x401fe4
mov ecx, 0x11
xor eax, eax
mov edi, 0x42d438
push 0x42d428
rep stosd dword es:[edi], eax
xor ecx, ecx
push 0x42d438
mov dword [0x42d428], ecx
mov dword [0x42d438], 0x44
mov dword [0x42d42c], ecx
mov dword [0x42d430], ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push 0x42d5d4
push ecx
mov dword [0x42d434], ecx
call dword [fcn.004221e8]
test eax, eax
je 0x401fe4
mov esi, dword [0x422490]
push 0
push 0
lea edx, [esp + 0x18]
push 0
push edx
call esi
test eax, eax
je 0x401f45
mov edi, dword [0x422494]
mov ebx, dword [0x422498]
lea eax, [esp + 0x10]
push eax
call edi
lea ecx, [esp + 0x10]
push ecx
call ebx
push 0
push 0
lea edx, [esp + 0x18]
push 0
push edx
call esi
test eax, eax
jne 0x401f26
push 0
push 0
push 2
push 0
push 3
push 0xc0000000
push 0x42d5d4
call dword [fcn.004221dc]
mov esi, dword [fcn.004221e0]
push eax
call esi
mov eax, dword [0x42d428]
push eax
call esi
mov ecx, dword [0x42d42c]
push ecx
call esi
call fcn.00402a50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x41c
ret
lea edx, [esp + 0x12c]
push edx
push 0
push 0x402190
call fcn.0040c83a
mov esi, dword [0x422490]
add esp, 0xc
lea eax, [esp + 0x10]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x401fe4
mov edi, dword [0x422494]
mov ebx, dword [0x422498]
lea ecx, [esp + 0x10]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
call ebx
push 0
push 0
lea eax, [esp + 0x18]
push 0
push eax
call esi
test eax, eax
jne 0x401fc5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x41c
ret