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

Disassembly:
push 0xffffffffffffffff
push 0x4825e0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a1620]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [esi + 0x48c0], 1
jne 0x42673f
mov edi, esi
call fcn.00415f30
mov ecx, dword [esi + 0x173c]
imul ecx, ecx, 0x63
sub ecx, dword [esi + 0x4848]
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4264e9
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0
mov ecx, dword [esi + 0x1de0]
mov eax, dword [ecx + 0x78]
add eax, 0x58
push eax
lea ecx, [esp + 0x1c]
call fcn.00405a40
xor eax, eax
cmp dword [esi + 0x558], eax
mov dword [esp + 0x14], eax
jle 0x4265c9
test eax, eax
jl 0x426785
cmp eax, dword [esi + 0x558]
jge 0x426785
mov edi, dword [esi + 0x554]
mov edx, dword [esp + 0x18]
lea ebp, [eax*4]
add edi, ebp
test edx, edx
je 0x4265b6
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
jl 0x4265b6
push edx
push ecx
call fcn.004665a4
add esp, 8
test eax, eax
je 0x4265b2
sub eax, dword [edi]
cmp eax, 0xffffffff
je 0x4265b2
xor edi, edi
test ebx, ebx
jle 0x4265b2
jmp 0x426580
mov edx, dword [esp + 0x14]
cmp edx, dword [esi + 0x558]
jge 0x426785
mov eax, dword [esi + 0x554]
mov edx, dword [esi + 0x174c]
add eax, ebp
lea ecx, [esi + 0x1744]
push eax
push edx
call fcn.0044f205
add edi, 1
cmp edi, ebx
jl 0x426580
mov eax, dword [esp + 0x14]
add eax, 1
cmp eax, dword [esi + 0x558]
mov dword [esp + 0x14], eax
jl 0x426529
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4265f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x1740]
imul ecx, ecx, 0x63
sub ecx, dword [esi + 0x484c]
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
call fcn.0044bb76
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42662d
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], 1
mov ecx, dword [esi + 0x1e6c]
mov eax, dword [ecx + 0x78]
add eax, 0x58
push eax
lea ecx, [esp + 0x18]
call fcn.00405a40
xor eax, eax
cmp dword [esi + 0x56c], eax
mov dword [esp + 0x18], eax
jle 0x426709
test eax, eax
jl 0x426785
cmp eax, dword [esi + 0x56c]
jge 0x426785
mov edi, dword [esi + 0x568]
mov edx, dword [esp + 0x14]
lea ebp, [eax*4]
add edi, ebp
test edx, edx
je 0x4266f6
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
jl 0x4266f6
push edx
push ecx
call fcn.004665a4
add esp, 8
test eax, eax
je 0x4266f2
sub eax, dword [edi]
cmp eax, 0xffffffff
je 0x4266f2
xor edi, edi
test ebx, ebx
jle 0x4266f2
jmp 0x4266c0
mov edx, dword [esp + 0x18]
cmp edx, dword [esi + 0x56c]
jge 0x426785
mov eax, dword [esi + 0x568]
mov edx, dword [esi + 0x174c]
add eax, ebp
lea ecx, [esi + 0x1744]
push eax
push edx
call fcn.0044f205
add edi, 1
cmp edi, ebx
jl 0x4266c0
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, dword [esi + 0x56c]
mov dword [esp + 0x18], eax
jl 0x42666d
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426731
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esi + 0x48c0], 0
mov byte [esi + 0x48b8], 1
cmp dword [esi + 0x174c], 0
je 0x42687c
lea ecx, [esp + 0x1c]
call fcn.0044ee5a
push ecx
mov ebx, 2
mov dword [esp + 0x3c], ebx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x48bce8
call fcn.004014f0
lea ebp, [esi + 0x1744]
mov byte [esp + 0x3c], 3
cmp dword [ebp + 8], 0
lea ecx, [esp + 0x20]
push ecx
jg 0x42678a
jmp fcn.0044c4a2
mov eax, dword [ebp + 4]
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov dword [esp + 0x20], esp
mov edi, esp
push eax
call fcn.00402200
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x44], bl
call fcn.00419cb0
cmp dword [esp + 0x24], ebx
jg 0x4267bb
jmp fcn.0044c4a2
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 8]
add edi, 8
sub eax, 0x10
mov ebx, 1
cmp dword [eax + 0xc], ebx
jle 0x4267dd
mov edx, dword [eax + 4]
push edx
mov ecx, edi
call fcn.004013b0
cmp dword [esp + 0x24], ebx
mov eax, dword [edi]
mov dword [esp + 0x18], eax
jg 0x4267ee
jmp fcn.0044c4a2
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 4]
add edi, 4
sub eax, 0x10
cmp dword [eax + 0xc], ebx
jle 0x42680b
mov ecx, dword [eax + 4]
push ecx
mov ecx, edi
call fcn.004013b0
mov edx, dword [esp + 0x18]
mov ebx, dword [edi]
push edx
call fcn.004669bd
add esp, 4
push ebx
mov edi, eax
call fcn.004669bd
add esp, 4
push 0
push 0
push 0
push 0
push 0
push 0x630000
shl edi, 0x10
push edi
shl eax, 0x10
push eax
push 0x10000
push 0
push 0x140000
push 0x10025
push 0x1e
call fcn.00415a20
push 1
push 0
mov ecx, ebp
call fcn.0044f02c
lea ecx, [esp + 0x1c]
mov dword [esi + 0x48bc], 0x3e8
mov dword [esp + 0x38], 0xffffffff
call fcn.0044f09f
jmp 0x4268a8
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x48ee08
call fcn.004014f0
push esi
call fcn.00411cf0
add dword [esi + 0x48b0], 1
mov byte [esi + 0x48c0], 1
mov byte [esi + 0x48b8], 1
mov al, 1
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret