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

Disassembly:
sub esp, 0x74
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
push edi
test ebx, ebx
je 0x10041bee
mov ebp, dword [esp + 0x88]
test ebp, ebp
je 0x10041bee
mov edi, dword [esp + 0x8c]
test edi, edi
je 0x10041bee
push ebp
call fcn.10042240
add esp, 4
test eax, eax
js 0x1004180f
push edi
push eax
push ebx
call fcn.10041270
add esp, 0xc
pop edi
pop ebp
pop ebx
add esp, 0x74
ret
xor ebx, ebx
lea eax, [esp + 0x20]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x1c], ebx
push esi
cmp eax, ebp
je 0x1004187e
push 4
push dword [ebp + 4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ebx, eax
add esp, 8
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x10041856
lea esi, [eax - 2]
jmp 0x10041b0d
mov eax, dword [ebp + 8]
shl eax, 2
push eax
push dword [ebp + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
lea eax, [esp + 0x34]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
lea eax, [esp + 0x54]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
lea eax, [esp + 0x64]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
lea eax, [esp + 0x74]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
lea eax, [esp + 0x14]
push eax
call fcn.1003f140
mov esi, eax
add esp, 4
test esi, esi
js 0x10041b0d
push ebp
call fcn.10040130
mov ebx, eax
lea eax, [esp + 0x28]
push ebx
push eax
mov dword [esp + 0x1c], ebx
call fcn.10040b60
lea eax, [esp + 0x50]
push ebx
push eax
call fcn.100402a0
mov esi, eax
add esp, 0x14
test esi, esi
js 0x10041b09
mov ebx, dword [esp + 0x88]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.10041c00
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x14]
push ebx
call fcn.10041270
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x28]
push ebx
push eax
call fcn.10041270
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.1003fd10
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.1003f550
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
lea eax, [esp + 0x14]
push ebx
push eax
call fcn.100423e0
mov eax, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x10041a27
cmp eax, dword [esp + 0x44]
jne 0x10041a5d
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10040440
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x10041a9f
mov eax, dword [esp + 0x14]
test esi, esi
js 0x10041b09
test eax, eax
jne 0x100419f0
push edi
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.1003f550
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
mov eax, dword [esp + 0x34]
cmp eax, dword [edi]
lea eax, [esp + 0x34]
push edi
jne 0x10041ac1
push edi
push eax
call fcn.10040440
jmp 0x10041ade
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10040650
add esp, 8
test eax, eax
lea eax, [esp + 0x14]
push eax
js 0x10041a83
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x1c]
jmp 0x10041a8c
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.10042b00
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041a17
cmp dword [esp + 0x1c], 1
ja 0x10041a17
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp ecx, dword [eax]
sbb eax, eax
and eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
jmp 0x10041a1b
push eax
call fcn.10040650
add esp, 8
test eax, eax
lea eax, [esp + 0x34]
push edi
js 0x10041ad7
push edi
push eax
jmp 0x10041ad9
push eax
push edi
call fcn.10042b00
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10041b09
push 0
push edi
call fcn.100406f0
add esp, 8
test eax, eax
jne 0x10041af8
mov dword [edi], eax
test esi, esi
js 0x10041b09
push edi
push ebp
push edi
call fcn.1003f3e0
add esp, 0xc
mov esi, eax
mov ebx, dword [esp + 0x30]
mov edi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test ebx, ebx
je 0x10041b2d
mov eax, dword [esp + 0x28]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x10041b4b
mov eax, dword [esp + 0x48]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x10041b69
mov eax, dword [esp + 0x38]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x60]
test ebx, ebx
je 0x10041b87
mov eax, dword [esp + 0x58]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x70]
test ebx, ebx
je 0x10041ba5
mov eax, dword [esp + 0x68]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x10041bc6
mov eax, dword [esp + 0x78]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x10041be4
mov eax, dword [esp + 0x18]
shl eax, 2
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
push ebx
call edi
add esp, 0x10
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x74
ret
pop edi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x74
ret