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

Disassembly:
sub esp, 0x70
mov eax, dword [0x100c230c]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x78]
push ebx
push ebp
push esi
xor esi, esi
push edi
push 0x1010
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov byte [esp + 0x78], 1
mov byte [esp + 0x79], 2
mov byte [esp + 0x7a], 4
mov byte [esp + 0x7b], 8
mov byte [esp + 0x7c], 0x10
mov byte [esp + 0x7d], 0x20
mov byte [esp + 0x7e], 0x40
mov byte [esp + 0x7f], 0x80
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
call fcn.100774c5
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
cmp ebx, esi
je 0x1004b6b8
mov edx, dword [esp + 0x84]
push edx
call fcn.10048ae0
mov ebp, eax
mov dword [esp + 0x20], ebp
cmp ebp, 0xffffffff
jne 0x1004b6cf
push ebx
call fcn.100773e8
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.100755ed
add esp, 0x70
ret 0xc
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
or esi, 0xffffffff
or edi, 0xffffffff
jmp 0x1004b6e4
mov ebp, dword [esp + 0x20]
push 0x1010
push 0
push ebx
call fcn.10079c60
add esp, 0xc
push 0x1010
push ebx
push 8
lea eax, [esp + 0x3c]
push eax
push 0x9006f
lea ecx, [esp + 0x74]
push ecx
push 0
push 0
push 0
push ebp
call dword [0x100c593c]
mov dword [esp + 0x1c], eax
test eax, eax
jl 0x1004b73a
push 0x1388
push ebp
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esp + 0x60]
mov eax, edx
mov dword [esp + 0x1c], edx
test eax, eax
je 0x1004b759
cmp eax, 0x80000005
je 0x1004b759
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
mov dword [esp + 0x24], 0xffffffff
call fcn.100773e8
add esp, 4
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
xor edx, edx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x44], edx
test eax, eax
ja 0x1004b782
jb 0x1004b789
cmp ecx, 0x8000
jb 0x1004b789
mov ecx, 0x8000
xor eax, eax
cmp edx, eax
ja 0x1004b8be
jb 0x1004b79b
cmp ebp, ecx
jae 0x1004b8be
mov eax, ebp
mov ecx, edx
shrd eax, ecx, 3
mov al, byte [eax + ebx + 0x10]
shr ecx, 3
mov ecx, ebp
and ecx, 7
test byte [esp + ecx + 0x74], al
jne 0x1004b7d6
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1004b8b3
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add esi, ebp
adc edi, edx
add ebp, 1
adc edx, 0
jmp 0x1004b76a
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
je 0x1004b8b3
mov ebx, dword [esp + 0x18]
push 0x18
call fcn.100774c5
add esp, 4
test eax, eax
je 0x1004b9f8
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x1004b81f
mov dword [esp + 0x14], eax
mov dword [eax], eax
mov dword [eax + 4], eax
jmp 0x1004b83b
cmp dword [esp + 0x18], 0
jne 0x1004b82d
mov ebx, dword [ecx + 4]
mov dword [esp + 0x14], eax
mov dword [eax + 4], ebx
mov ecx, dword [ebx]
mov dword [eax], ecx
mov dword [ebx], eax
mov edx, dword [eax]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
sub ecx, esi
sbb edx, edi
add ecx, ebp
adc edx, dword [esp + 0x44]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
mov dword [eax + 0x14], edx
inc dword [ecx]
or esi, 0xffffffff
or edi, 0xffffffff
cmp dword [esp + 0x8c], 0
mov dword [esp + 0x18], eax
je 0x1004b8ab
mov ebx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
test ebx, ebx
ja 0x1004b882
cmp edx, 0x64
jbe 0x1004b8ab
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x50], ecx
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x60], edx
call fcn.10037d80
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
add ebp, 1
adc edx, 0
jmp 0x1004b76a
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add eax, ebp
adc ecx, edx
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jne 0x1004b6e0
mov edx, esi
and edx, edi
cmp edx, 0xffffffff
je 0x1004b993
mov eax, dword [esp + 0x18]
push 0x18
mov dword [esp + 0x20], eax
call fcn.100774c5
add esp, 4
test eax, eax
je 0x1004b9fc
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x1004b9c0
mov dword [esp + 0x14], eax
mov dword [eax], eax
mov dword [eax + 4], eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
sub edx, esi
sbb ecx, edi
add edx, ebp
adc ecx, dword [esp + 0x44]
mov dword [eax + 8], esi
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edx
inc dword [ecx]
cmp dword [esp + 0x8c], 0
je 0x1004b993
mov esi, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
test esi, esi
ja 0x1004b966
cmp edx, 0x64
jbe 0x1004b993
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x50], ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
call fcn.10037d80
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call fcn.100773e8
mov eax, dword [esp + 0x18]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.100755ed
add esp, 0x70
ret 0xc
cmp dword [esp + 0x18], 0
jne 0x1004b9e1
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov edx, dword [ecx]
mov dword [eax], edx
mov dword [ecx], eax
mov ecx, dword [eax]
mov dword [esp + 0x14], eax
mov dword [ecx + 4], eax
jmp 0x1004b929
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov edx, dword [ecx]
mov dword [eax], edx
mov dword [ecx], eax
mov ecx, dword [eax]
mov dword [ecx + 4], eax
jmp 0x1004b929
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call fcn.100773e8
mov edi, dword [esp + 0x18]
add esp, 4
test edi, edi
je 0x1004ba31
mov eax, edi
lea ebx, [ebx]
mov esi, dword [eax]
push eax
call fcn.100773e8
add esp, 4
mov eax, esi
cmp esi, edi
jne 0x1004ba20
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.100755ed
add esp, 0x70
ret 0xc