Function at 0x40cde0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x444b26
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4571dc]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
add ecx, 0x1f0
xor ebx, ebx
push ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0xac], ebx
mov dword [esp + 0x3c], ebx
call fcn.004032f0
push 0x44760c
lea ecx, [esp + 0x24]
mov byte [esp + 0xac], 1
call fcn.004018a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xa8], 2
call fcn.00402cd0
lea ecx, [esp + 0x58]
mov byte [esp + 0xa8], 3
call fcn.00402cd0
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
mov edi, dword [esp + 0xb0]
mov ebp, eax
mov byte [esp + 0xa8], 4
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov esi, dword [esp + 0xc4]
cmp edi, ebx
je 0x40ce98
cmp edi, dword [esp + 0xb0]
je 0x40ce9d
call fcn.00429084
cmp ebp, esi
je 0x40d23d
cmp edi, ebx
jne 0x40cf48
call fcn.00429084
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x40cebe
call fcn.00429084
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x24]
call fcn.00401770
push 0x447b04
lea ecx, [esp + 0x18]
call fcn.004018a0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ecx
push edx
push eax
lea ecx, [esp + 0x84]
mov byte [esp + 0xb4], 5
call fcn.00403df0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xcc]
lea ecx, [esp + 0x58]
push ecx
push edx
push eax
lea ecx, [esp + 0x84]
call fcn.00403df0
mov ecx, dword [esp + 0x50]
mov ebp, dword [ecx]
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x3c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], 1
jmp 0x40cf58
mov eax, dword [edi]
jmp 0x40ceb4
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x50]
cmp edi, ebx
je 0x40cf66
cmp edi, dword [esp + 0x3c]
je 0x40cf6b
call fcn.00429084
cmp ebp, esi
je 0x40d1ad
cmp edi, ebx
jne 0x40cfb1
call fcn.00429084
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x40cf88
call fcn.00429084
mov esi, dword [ebp + 8]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], ebx
lea ecx, [esi + 0xc]
jl 0x40cfb5
cmp eax, dword [esi]
jne 0x40cfb5
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x40cff0
mov eax, dword [edi]
jmp 0x40cf7e
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebx
je 0x40d20d
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00428392
add esp, 0x10
lea ebp, [edi + 0x10]
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 0x24]
mov byte [esp + 0xa8], 6
cmp eax, ebx
jne 0x40d045
call fcn.00429084
xor eax, eax
mov esi, dword [esp + 0x28]
cmp esi, dword [eax + 0x14]
jne 0x40d01c
call fcn.00429084
mov esi, dword [esi + 8]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], ebx
lea ecx, [esi + 0xc]
jl 0x40d049
cmp eax, dword [esi]
jne 0x40d049
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x40d084
mov eax, dword [eax]
jmp 0x40d00e
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
cmp edi, ebx
je 0x40d20d
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00428392
add esp, 0x10
lea esi, [edi + 0x10]
mov ecx, 0x447a94
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40d0b6
cmp dx, bx
je 0x40d0b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d0b6
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x40d090
xor eax, eax
jmp 0x40d0bb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
jne 0x40d10f
xor eax, eax
cmp esi, ebx
setne al
cmp eax, ebx
je 0x40d212
mov ecx, esi
mov eax, ebp
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40d0fd
cmp dx, bx
je 0x40d0f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40d0fd
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x40d0d7
xor eax, eax
jmp 0x40d102
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
jne 0x40d10f
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x40d1a2
call fcn.00429084
xor eax, eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [eax + 0x14]
jne 0x40d130
call fcn.00429084
mov eax, dword [esp + 0x24]
mov ecx, dword [edi]
mov dword [esp + 0x1c], ecx
cmp eax, ebx
jne 0x40d1a9
call fcn.00429084
xor eax, eax
mov edi, dword [esp + 0x28]
cmp edi, dword [eax + 0x14]
jne 0x40d153
call fcn.00429084
mov edx, dword [edi]
lea eax, [esi - 0x10]
mov dword [esp + 0x28], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d175
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0xa8], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cf50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40cf50
mov eax, dword [eax]
jmp 0x40d122
mov eax, dword [eax]
jmp 0x40d145
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xa8], 4
cmp dword [esp + 0x34], ebx
jne 0x40d21c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d1db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
cmp eax, ebx
jne 0x40d209
call fcn.00429084
xor eax, eax
mov esi, dword [esp + 0x30]
cmp esi, dword [eax + 0x14]
jne 0x40d1f8
call fcn.00429084
mov ecx, dword [esi]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov ebp, ecx
jmp 0x40ce84
mov eax, dword [eax]
jmp 0x40d1ea
call fcn.00401ae0
push 0x80004005
call fcn.00401090
mov dword [esp + 0x38], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d23d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x58]
mov byte [esp + 0xa8], 7
call fcn.00402d40
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00418170
mov edx, dword [esp + 0x5c]
push edx
mov dword [esp + 0x74], ebx
call fcn.00418170
add esp, 8
lea ecx, [esp + 0x3c]
mov byte [esp + 0xa8], 8
call fcn.00402d40
mov eax, dword [esp + 0x50]
push eax
call fcn.00418170
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x58], ebx
call fcn.00418170
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 8
mov byte [esp + 0xa8], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d2bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x78]
mov byte [esp + 0xa8], bl
call fcn.004165d0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xa8], 9
call fcn.00402d40
mov ecx, dword [esp + 0xc4]
push ecx
call fcn.00418170
mov edx, dword [esp + 0xb4]
push edx
mov dword [esp + 0xcc], ebx
call fcn.00418170
mov eax, dword [esp + 0x40]
add esp, 8
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 0x20