Function at 0x410670
Capabilities:
Link many functions at runtime

Disassembly:
push 0xffffffffffffffff
push 0x447ed0
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x458ad0]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x458ad0]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x18], ebx
mov esi, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0xb0], edi
push edi
mov ebp, 0xf
push 0x44e187
lea ecx, [esp + 0x58]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x6c], edi
mov byte [esp + 0x5c], 0
call fcn.004051d0
mov byte [esp + 0xb0], 1
push edi
push 0x44e187
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], edi
mov byte [esp + 0x78], 0
call fcn.004051d0
mov byte [esp + 0xb0], 2
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp esi, edi
je 0x410732
mov eax, dword [0x45cfc0]
push 0x44eb20
push eax
call ebp
push esi
call eax
add esp, 4
mov edi, eax
mov ecx, dword [0x45cfc0]
push 0x44eb38
push ecx
call ebp
call eax
cmp edi, eax
jne 0x4108cf
mov edx, dword [0x45cfc0]
push 0x44eb50
push edx
call ebp
push esi
call eax
xor ecx, ecx
mov edi, eax
mov edx, 4
mul edx
seto cl
mov dword [esp + 0x24], edi
neg ecx
or ecx, eax
push ecx
call fcn.0041e1f3
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041e1f3
add esp, 0xc
mov ebx, eax
mov eax, dword [0x45cfc0]
push 0x44eb68
push eax
mov dword [esp + 0x24], ebx
call ebp
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push esi
call eax
add esp, 0xc
mov dword [esp + 0x28], 0
test edi, edi
jle 0x4108b8
mov eax, dword [esp + 0x14]
mov ecx, ebx
sub eax, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], eax
jmp 0x4107e8
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ecx]
mov edi, dword [ecx]
lea edx, [esp + 0x50]
push edx
push eax
mov dword [esp + 0x34], edi
call fcn.00411560
mov ecx, dword [esp + 0xbc]
mov edx, 0x10
cmp dword [esp + 0xd0], edx
jae 0x410818
lea ecx, [esp + 0xbc]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0xcc]
mov eax, esi
cmp esi, ebx
jb 0x41082b
mov eax, ebx
cmp dword [esp + 0x68], edx
mov edx, dword [esp + 0x54]
jae 0x410839
lea edx, [esp + 0x54]
call fcn.00401090
test eax, eax
jne 0x41089c
cmp esi, ebx
jb 0x41089c
cmp esi, ebx
setne al
test eax, eax
jne 0x41089c
test edi, edi
jne 0x410857
xor esi, esi
jmp 0x41086c
mov eax, dword [0x45cfc0]
push 0x44eb20
push eax
call ebp
push edi
call eax
add esp, 4
mov esi, eax
mov ecx, dword [0x45cfc0]
push 0x44ec24
push ecx
call ebp
call eax
cmp esi, eax
je 0x410982
mov edx, dword [0x45cfc0]
push 0x44f284
push edx
call ebp
call eax
cmp esi, eax
je 0x410a36
mov eax, dword [esp + 0x28]
add dword [esp + 0x24], 4
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
jl 0x4107e0
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0041e1fe
push ebx
call fcn.0041e1fe
mov ebx, dword [esp + 0x20]
add esp, 8
push 0xffffffffffffffff
xor esi, esi
push esi
lea edx, [esp + 0x74]
mov edi, 0xf
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x14], esi
push edx
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.00403f10
mov ebp, 0x10
cmp dword [esp + 0x84], ebp
jb 0x41090a
mov eax, dword [esp + 0x70]
push eax
call fcn.0041e1fe
add esp, 4
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], esi
mov byte [esp + 0x70], 0
cmp dword [esp + 0x68], ebp
jb 0x410930
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0041e1fe
add esp, 4
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], esi
mov byte [esp + 0x54], 0
cmp dword [esp + 0xd0], ebp
jb 0x410956
mov edx, dword [esp + 0xbc]
push edx
call fcn.0041e1fe
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.00428e93
add esp, 0xa0
ret 0x1c
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00411560
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0041e1fe
mov edx, dword [esp + 0x20]
push edx
call fcn.0041e1fe
mov esi, dword [esp + 0x20]
add esp, 8
push 0xffffffffffffffff
xor ebp, ebp
push ebp
lea eax, [esp + 0x74]
mov edi, 0xf
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], ebp
push eax
mov ecx, esi
mov byte [esi + 4], 0
call fcn.00403f10
mov ebx, 0x10
cmp dword [esp + 0x84], ebx
jb 0x4109e3
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0041e1fe
add esp, 4
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
cmp dword [esp + 0x68], ebx
jb 0x410a09
mov edx, dword [esp + 0x54]
push edx
call fcn.0041e1fe
add esp, 4
cmp dword [esp + 0xd0], ebx
mov dword [esp + 0x64], ebp
mov byte [esp + 0x54], 0
mov dword [esp + 0x68], edi
jb 0x410a2f
mov eax, dword [esp + 0xbc]
push eax
call fcn.0041e1fe
add esp, 4
mov eax, esi
jmp 0x410958
xor ebx, ebx
push ebx
push 0x44e187
lea ecx, [esp + 0x90]
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
call fcn.004051d0
mov byte [esp + 0xb0], 3
mov ecx, dword [0x45cfc0]
push 0x44f298
push ecx
call ebp
push edi
call eax
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jle 0x410b3e
jmp 0x410a94
mov edi, dword [esp + 0x2c]
mov edx, dword [0x45cfc0]
push 0x44f2a8
push edx
call ebp
push ebx
push edi
call eax
mov esi, eax
add esp, 8
test esi, esi
jne 0x410ab3
xor edi, edi
jmp 0x410ac8
mov eax, dword [0x45cfc0]
push 0x44eb20
push eax
call ebp
push esi
call eax
add esp, 4
mov edi, eax
mov ecx, dword [0x45cfc0]
push 0x44ec24
push ecx
call ebp
call eax
cmp edi, eax
jne 0x410b33
lea edx, [esp + 0x6c]
push edx
push esi
call fcn.00411560
lea eax, [esp + 0x6c]
push eax
mov edi, 0x44ebd4
lea esi, [esp + 0x38]
call fcn.00406de0
add esp, 4
push 0
push eax
or eax, 0xffffffff
lea esi, [esp + 0x90]
mov byte [esp + 0xb8], 4
call fcn.00404fd0
mov byte [esp + 0xb0], 3
cmp dword [esp + 0x4c], 0x10
jb 0x410b33
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041e1fe
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x20]
jl 0x410a90
mov eax, dword [esp + 0x8c]
mov ebp, 0x10
cmp dword [esp + 0xa0], ebp
jae 0x410b5a
lea eax, [esp + 0x8c]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410b60
sub eax, edx
dec eax
push eax
xor ecx, ecx
lea esi, [esp + 0x38]
lea edx, [esp + 0x8c]
call fcn.00407e80
push 0xffffffffffffffff
xor ebx, ebx
push ebx
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xbc], 5
call fcn.00403f10
mov byte [esp + 0xb0], 3
cmp dword [esp + 0x4c], ebp
jb 0x410bb2
mov edx, dword [esp + 0x38]
push edx
call fcn.0041e1fe
add esp, 4
mov eax, dword [esp + 0x14]
push eax
call fcn.0041e1fe
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041e1fe
mov esi, dword [esp + 0x20]
add esp, 8
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x90]
mov edi, 0xf
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], ebx
push edx
mov ecx, esi
mov byte [esi + 4], 0
call fcn.00403f10
cmp dword [esp + 0xa0], ebp
jb 0x410c07
mov eax, dword [esp + 0x8c]
push eax
call fcn.0041e1fe
add esp, 4
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x8c], 0
cmp dword [esp + 0x84], ebp
jb 0x410c33
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0041e1fe
add esp, 4
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ebx
mov byte [esp + 0x70], 0
cmp dword [esp + 0x68], ebp
jb 0x410c59
mov edx, dword [esp + 0x54]
push edx
call fcn.0041e1fe
add esp, 4
cmp dword [esp + 0xd0], ebp
mov dword [esp + 0x64], ebx
jmp 0x410a14