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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
mov dword [ecx + 0x44], 1
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x40df84
xor edi, edi
jmp 0x40df65
inc edi
cmp edi, eax
jae 0x40df84
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x40df60
mov edx, dword [edx + 8]
test edx, edx
je 0x40df60
push ecx
call edx
add esp, 4
mov eax, dword [esi + 0x2c]
jmp 0x40df60
movq xmm0, qword [esi + 0x88]
movd edi, xmm0
pshufd xmm0, xmm0, 0x55
movd ebx, xmm0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x40dfb8
xor eax, eax
mov edx, edi
or edx, ebx
sete al
mov edx, dword [esi + 0x10]
push eax
push dword [esi + 8]
call fcn.00401b50
add esp, 8
mov ecx, dword [esi + 0x50]
test ecx, ecx
je 0x40e00b
xor eax, eax
or edi, ebx
sete al
xor edx, edx
cmp byte [esi + 0x48], 0
sete dl
mov ebx, dword [esi + 8]
mov edi, 0x400000
mov ebp, 0x200000
cmove ebp, edi
shl edx, 0x15
add edx, 0x200000
mov edi, ebx
sub edi, edx
cmp ebp, ebx
mov ebx, 0
sbb ebx, dword [esi + 0xc]
mov ebx, 0
cmovae edi, ebx
add edx, dword [esi + 0x10]
push eax
push edi
call fcn.00401b50
add esp, 8
movq xmm0, qword [esi + 0x78]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
or ecx, eax
je 0x40e039
movq xmm0, qword [esi + 0x78]
movd dword [esp], xmm0
pshufd xmm0, xmm0, 0x55
movd ebp, xmm0
jmp 0x40e22d
mov eax, dword [esi + 0x54]
test eax, eax
je 0x40e0a1
movq xmm0, qword [eax]
movd edi, xmm0
mov eax, dword [esi + 8]
xor ecx, ecx
cmp edi, eax
sbb ecx, dword [esi + 0xc]
jae 0x40e217
mov ebx, eax
sub ebx, edi
and ebx, 0xfffffff8
mov ecx, dword [esi + 0x10]
add ecx, ebx
sub eax, ebx
push 0
push 0
push eax
push ecx
push dword [esi + 0x54]
call fcn.004015b0
add esp, 0x14
mov eax, dword [esi + 4]
mov ecx, dword [esi]
add ecx, ebx
adc eax, 0
push edi
push eax
push ecx
push str.Loaded_DTB_at_0x_08I64x__size__u
call fcn.00410a40
add esp, 0x10
mov ebp, dword [esi + 4]
add ebx, dword [esi]
mov dword [esp], ebx
adc ebp, 0
jmp 0x40e22d
movq xmm0, qword [esi + 0x88]
movd eax, xmm0
pshufd xmm0, xmm0, 0x55
movd ecx, xmm0
or ecx, eax
je 0x40e184
mov ecx, dword [esi + 0xb0]
mov edx, str.model
push 0xf
push str.PlasmaArc_Five
call fcn.00402500
add esp, 8
mov ecx, dword [esi + 0xb0]
mov edx, str.compatible
push 0xe
push 0x439fc1
call fcn.00402500
add esp, 8
cmp dword [esi + 0x20], 0
je 0x40e184
xor edi, edi
jmp 0x40e132
xor ecx, ecx
mov edx, 0x43ab73
push 0
mov edi, dword [esp + 4]
push edi
call fcn.004022c0
add esp, 8
mov ecx, eax
mov edx, str.compatible
push 0x14
push str.lekkit_arc7xx
call fcn.00402500
add esp, 8
inc edi
cmp edi, dword [esi + 0x20]
jae 0x40e184
mov dword [esp], edi
mov ebp, dword [esi + 0xb0]
test ebp, ebp
mov ecx, 0
je 0x40e102
mov edx, dword [ebp + 0x20]
jmp 0x40e15a
xor eax, eax
cmp al, byte [ebx + str.cpus]
je 0x40e102
sub edx, 1
jb 0x40e100
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + edx*4]
mov edi, dword [ecx]
movzx eax, byte [edi]
xor ebx, ebx
test al, al
je 0x40e150
cmp al, byte [ebx + str.cpus]
jne 0x40e152
movzx eax, byte [edi + ebx + 1]
inc ebx
test al, al
jne 0x40e170
jmp 0x40e150
mov ecx, dword [esi + 0xb0]
xor ebx, ebx
test ecx, ecx
je 0x40e1bd
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea edx, [esp + 4]
call fcn.00402850
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
lea edi, [eax + ecx + 0x3c]
mov ecx, dword [esi + 0xb0]
jmp 0x40e1c1
xor ecx, ecx
xor edi, edi
mov eax, dword [esi + 8]
mov ebp, edi
sub ebp, eax
neg ebp
and ebp, 0xfffffff8
cmp edi, eax
mov edx, 0
sbb edx, dword [esi + 0xc]
cmovae ebp, ebx
mov edx, dword [esi + 0x10]
add edx, ebp
sub eax, ebp
push eax
call fcn.00402930
add esp, 4
test eax, eax
je 0x40e217
mov eax, dword [esi + 4]
mov ecx, dword [esi]
add ecx, ebp
adc eax, 0
push edi
push eax
push ecx
push str.Generated_DTB_at_0x_08I64x__size__u
call fcn.00410a40
add esp, 0x10
mov eax, ebp
mov ebp, dword [esi + 4]
add eax, dword [esi]
mov dword [esp], eax
adc ebp, 0
jmp 0x40e22d
push str.Device_tree_does_not_fit_in_RAM_
call fcn.00410c50
add esp, 4
mov dword [esp], 0
xor ebp, ebp
movq xmm0, qword [esi + 0x80]
movd ecx, xmm0
pshufd xmm1, xmm0, 0x55
movd edx, xmm1
movd dword [esi + 0x38], xmm0
movd dword [esi + 0x3c], xmm1
call fcn.0040d0a0
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esi + 0x30], xmm1
cmp dword [esi + 0x20], 0
je 0x40e40c
xor ebx, ebx
jmp 0x40e27a
inc ebx
cmp ebx, dword [esi + 0x20]
jae 0x40e40c
mov eax, dword [esi + 0x18]
mov edi, dword [eax + ebx*4]
mov dword [edi + 0x3258], ebx
mov dword [edi + 0x325c], 0
mov dword [edi + 0x58], ebx
mov dword [edi + 0x5c], 0
mov dword [edi + 0x64], ebp
mov eax, dword [esp]
mov dword [edi + 0x60], eax
movq xmm0, qword [esi + 0x70]
pshufd xmm1, xmm0, 0x55
movd dword [edi + 0x108], xmm0
movd dword [edi + 0x10c], xmm1
cmp byte [edi + 0x3239], 3
je 0x40e3bc
mov byte [edi + 0x3239], 3
mov eax, dword [edi + 0x3264]
shr eax, 0x1f
cmp byte [edi + 0x323a], al
je 0x40e33a
mov byte [edi + 0x323a], al
mov byte [edi + 0x35a4], 0
cmp byte [edi + 0x35a8], 0
je 0x40e334
mov byte [edi + 0x35a9], 0
lea eax, [edi + 0x2210]
push 0x1000
push 0
push eax
call sub.MSVCR70.dll_memset
add esp, 0xc
mov dword [edi + 0x221c], 0xffffffff
mov dword [edi + 0x2218], 0xffffffff
lea ecx, [edi + 0x33b0]
call fcn.0042e810
mov dword [edi], 0
lea eax, [edi + 0x210]
push 0x2000
push 0
push eax
call sub.MSVCR70.dll_memset
add esp, 0xc
lea eax, [edi + 0x2210]
mov dword [edi + 0x218], 0xffffffff
mov dword [edi + 0x21c], 0xffffffff
mov dword [edi + 0x220], 0xffffffff
mov dword [edi + 0x224], 0xffffffff
mov dword [edi + 0x228], 0xffffffff
mov dword [edi + 0x22c], 0xffffffff
push 0x1000
push 0
push eax
call sub.MSVCR70.dll_memset
add esp, 0xc
mov dword [edi + 0x221c], 0xffffffff
mov dword [edi + 0x2218], 0xffffffff
mov dword [edi], 0
cmp byte [edi + 0x35a8], 0
je 0x40e270
mov byte [edi + 0x35a9], 0
lea eax, [edi + 0x2210]
push 0x1000
push 0
push eax
call sub.MSVCR70.dll_memset
add esp, 0xc
mov dword [edi + 0x221c], 0xffffffff
mov dword [edi + 0x2218], 0xffffffff
add edi, 0x33b0
mov ecx, edi
call fcn.0042e810
jmp 0x40e270
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret