Function at 0x42503f
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x487bbf
mov eax, dword fs:[0]
push eax
sub esp, 0x78
push ebx
push esi
push edi
mov eax, dword [0x4b2068]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
and dword [edi + 0x50], 0
or dword [esp + 0x14], 0xffffffff
lea ebx, [edi + 0x58]
mov esi, dword [ebx + 8]
cmp dword [ebx + 4], esi
mov dword [esp + 0x1c], ebx
jbe 0x425092
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
jbe 0x4250a8
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x4250db
push eax
push dword [ebx + 8]
mov eax, esi
call fcn.00425709
mov edi, dword [ebx + 8]
pop ecx
mov esi, eax
pop ecx
mov dword [esp + 0x20], esi
jmp 0x4250cc
call fcn.0041dfd7
add esi, 0x34
cmp esi, edi
jne 0x4250c4
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [ebx + 8], eax
and dword [esp + 0x10], 0
lea eax, [edi + 0xc]
mov dword [esp + 0x20], eax
call fcn.0041fe76
test eax, eax
jbe 0x425208
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
call fcn.00404080
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
mov dword [esp + 0x28], eax
add eax, 8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
lea edi, [esp + 0x38]
lea esi, [esp + 0x30]
mov dword [esp + 0x3c], eax
call fcn.0040c8ac
test al, al
je 0x4251ed
push dword [esp + 0x28]
call fcn.0041ff24
sub esp, 0x30
mov ecx, esp
mov dword [esp + 0x4c], esp
push ecx
mov edi, eax
call fcn.00424efe
lea ebx, [esp + 0x84]
call fcn.004256d7
add esp, 0x34
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x90], ebx
mov edi, dword [esi + 4]
cmp edi, ebx
je 0x425189
mov eax, dword [esi + 0xc]
sub eax, edi
push 0x34
cdq
pop ecx
idiv ecx
mov ebx, eax
mov eax, esi
call fcn.004253bc
cmp eax, ebx
jae 0x4251a7
push dword [esp + 0x18]
push 1
push dword [esi + 8]
call fcn.0042545a
mov dword [esi + 8], eax
jmp 0x4251c6
mov ebx, dword [esi + 8]
cmp edi, ebx
jbe 0x4251b4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
push ebx
push esi
push dword [esp + 0x20]
lea eax, [esp + 0x4c]
push eax
mov eax, esi
call fcn.004253d2
or dword [esp + 0x90], 0xffffffff
lea esi, [esp + 0x50]
call fcn.0041dfd7
lea esi, [esp + 0x30]
call fcn.0042b197
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
jmp 0x42511f
mov eax, dword [esp + 0x20]
inc dword [esp + 0x10]
call fcn.0041fe76
cmp dword [esp + 0x10], eax
jb 0x4250f4
mov edi, dword [esp + 0x24]
mov eax, ebx
call fcn.004253bc
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x42532b
mov esi, dword [edi + 0x4c]
xor eax, eax
cmp esi, eax
jbe 0x42532b
cmp dword [edi + 0x54], eax
jne 0x42532b
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, ebx
mov dword [esp + 0x90], ecx
call fcn.004253bc
dec eax
cmp esi, eax
jae 0x425253
mov eax, esi
jmp 0x42525b
mov eax, ebx
call fcn.004253bc
dec eax
xor esi, esi
cmp eax, esi
jbe 0x4252ad
mov ebx, eax
push 0xc
call fcn.0047f87e
cmp eax, esi
pop ecx
jne 0x425273
xor eax, eax
jmp 0x425296
push esi
push esi
push eax
push 0x4257c5
lea ecx, [esp + 0x24]
push esi
push esi
mov dword [eax], edi
mov dword [eax + 8], ecx
mov dword [eax + 4], fcn.00425350
call dword [sym.imp.MSVCR80.dll__beginthreadex]
add esp, 0x18
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
push eax
lea esi, [esp + 0x44]
call fcn.0041fe89
xor esi, esi
dec ebx
jne 0x425263
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00425350
cmp dword [esp + 0x44], esi
je 0x4252ce
mov eax, dword [esp + 0x48]
mov ecx, eax
sub ecx, dword [esp + 0x44]
sar ecx, 2
jne 0x4252d8
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x44], esi
jne 0x4252e2
xor eax, eax
jmp 0x4252e9
sub eax, dword [esp + 0x44]
sar eax, 2
push 0xffffffffffffffff
push 1
push dword [esp + 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
xor ebx, ebx
cmp dword [esp + 0x44], esi
je 0x425337
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x44]
sar eax, 2
cmp ebx, eax
jae 0x42531f
mov eax, dword [esp + 0x44]
push dword [eax + ebx*4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
jmp 0x4252fa
push dword [esp + 0x44]
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x425337
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00425350
mov eax, dword [edi + 0x50]
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret