Function at 0x41c400
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x54b70b
push eax
mov dword fs:[0], esp
sub esp, 0xc
xor eax, eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x3c]
cmp esi, eax
push edi
mov ebx, ecx
je 0x41c46a
mov ecx, dword [esp + 0x34]
cmp byte [ecx], 1
jne 0x41c46a
cmp esi, 1
mov eax, 0x59ded8
je 0x41c440
mov eax, 0x59ded0
push eax
push 0x273e
push 0x5b1c10
call fcn.0046f9c0
add esp, 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret 0x1c
cmp esi, eax
mov dword [esp + 0x10], eax
je 0x41c47a
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
cmp ecx, eax
jl 0x41c601
mov ebp, dword [esp + 0x34]
mov cl, byte [ebp]
xor edx, edx
test eax, eax
sete dl
cmp cl, 1
mov dword [esp + 0x18], edx
je 0x41c5f0
jmp 0x41c4ab
mov esi, dword [esp + 0x40]
test esi, esi
je 0x41c4d0
push ebp
call fcn.004118e0
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp eax, ecx
je 0x41c4d0
push ebp
call fcn.004ce7d0
add esp, 4
add ebp, eax
jmp 0x41c5da
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
push eax
push ebp
push ecx
mov ecx, ebx
call fcn.0041c030
mov esi, eax
test esi, esi
je 0x41c453
mov edi, dword [esp + 0x38]
push esi
mov ecx, edi
call fcn.004780b0
mov edi, dword [edi + 0x10]
push ebp
shr edi, 2
dec edi
call fcn.004ce7d0
add ebp, eax
mov eax, dword [esp + 0x44]
add esp, 4
test eax, eax
je 0x41c5da
mov ecx, esi
call fcn.00412350
test eax, eax
je 0x41c588
push 0
push 0
push reloc.OLEAUT32.dll_SysReAllocString
push esi
mov ecx, ebx
call fcn.0041a1d0
test eax, eax
je 0x41c453
mov eax, dword [esp + 0x40]
mov ecx, 1
cmp eax, ecx
jne 0x41c550
mov edx, dword [esi + 0x10]
xor eax, eax
test edx, edx
jmp 0x41c557
mov edx, dword [esi + 0x10]
xor eax, eax
cmp edx, ecx
sete al
test eax, eax
jne 0x41c693
push eax
mov ecx, esi
call fcn.00412290
push esi
call fcn.00528f44
mov ecx, dword [esp + 0x3c]
add esp, 4
lea edx, [edi*4]
push 4
push edx
call fcn.00478830
jmp 0x41c5da
mov edi, dword [esp + 0x2c]
push esi
push edi
mov ecx, ebx
call fcn.0041be40
push 0
push 0
push reloc.OLEAUT32.dll_SysReAllocString
push esi
push edi
mov ecx, ebx
call fcn.004191f0
test eax, eax
je 0x41c453
mov edx, dword [esp + 0x40]
xor eax, eax
cmp edx, 2
push 0xffffffffffffffff
sete al
push eax
push esi
push edi
mov ecx, ebx
call fcn.0041bc10
cmp eax, 0xffffffff
je 0x41c453
mov ecx, dword [esp + 0x44]
push eax
call fcn.004780b0
cmp byte [ebp], 1
jne 0x41c4a7
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x41c48e
mov edi, dword [esp + 0x38]
test esi, esi
je 0x41c667
mov ecx, dword [edi + 0x10]
and ecx, 0xfffffffc
cmp ecx, 4
jne 0x41c667
push 0x50
call fcn.00528f1b
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
xor eax, eax
cmp esi, eax
mov dword [esp + 0x24], eax
je 0x41c63a
mov ecx, esi
mov dword [esi + 0x48], eax
call fcn.004121f0
mov eax, esi
mov esi, dword [esp + 0x40]
xor edx, edx
cmp esi, 1
push eax
sete dl
mov ecx, edi
mov dword [esp + 0x28], 0xffffffff
mov dword [eax + 4], 6
mov dword [eax + 8], reloc.OLEAUT32.dll_SysReAllocString
mov dword [eax + 0x10], edx
call fcn.004780b0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push edi
push eax
push ecx
mov ecx, ebx
call fcn.0041bb90
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret 0x1c
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x10]
shr eax, 2
cmp eax, 2
jle 0x41c6d0
mov edi, dword [esp + 0x2c]
push 0xe9
lea esi, [edi + 0xc]
mov ecx, esi
call fcn.00478130
mov edi, dword [edi + 0x1c]
push 0
mov ecx, esi
call fcn.004780b0
mov ecx, dword [esp + 0x44]
push edi
call fcn.004780b0
mov ecx, 1
mov eax, ecx
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 0x1c