Function at 0x40d020
Capabilities:
Create thread
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x2474
call fcn.0044f150
mov eax, dword [0x4890a0]
xor eax, esp
mov dword [esp + 0x246c], eax
mov eax, dword [esp + 0x247c]
push ebx
push ebp
push esi
xor ebp, ebp
push edi
mov dword [eax], ebp
mov dword [esp + 0x30], ecx
mov dword [ecx], ebp
push 0x4816bc
push ebp
xor esi, esi
mov ecx, 0x481d6c
mov dword [esp + 0x3c], eax
call fcn.00419ea0
add esp, 8
cmp eax, ebp
mov dword [esp + 0x18], eax
jl 0x40d073
cmp eax, 2
jle 0x40d079
mov dword [esp + 0x18], ebp
mov eax, esi
sub eax, ebp
je 0x40d097
sub eax, 1
je 0x40d091
sub eax, 1
jne 0x40d09f
mov dword [esp + 0x18], 2
jmp 0x40d09f
mov dword [esp + 0x18], ebp
jmp 0x40d09f
mov dword [esp + 0x18], 0xfffffff1
lea eax, [esp + 0xbc]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov ecx, dword [esp + 0xd0]
push 0x4816bc
push ecx
xor esi, esi
mov ecx, 0x481d80
call fcn.00419ea0
add esp, 8
cmp eax, 0x40
mov dword [esp + 0x1c], eax
jle 0x40d0da
mov dword [esp + 0x1c], 0x40
mov eax, 1
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
call fcn.00410f50
mov edx, dword [esp + 0x2488]
mov edi, eax
mov eax, dword [edx + 0x418]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], edi
cmp eax, 0x4f463037
je 0x40d1e8
cmp eax, 0x4f463130
je 0x40d1e8
cmp eax, 0x4f4f4446
je 0x40d1e8
cmp eax, 0x575a4145
je 0x40d1e8
cmp eax, 0x57504148
je 0x40d1e8
cmp eax, 0x52415233
je 0x40d1e8
xor ecx, ecx
cmp eax, 0x5a495043
sete cl
lea ecx, [ecx + ecx + 1]
mov dword [esp + 0x24], ecx
jmp 0x40d1f4
mov dword [esp + 0x24], 7
mov ecx, dword [esp + 0x24]
test cl, 6
je case.default.0x40d26c
lea ecx, [esp + 0xe0]
call fcn.0041cb50
xor esi, esi
cmp dword [esp + 0xe0], ebp
jle 0x40d263
lea edi, [esp + 0x2f4]
jmp 0x40d220
cmp dword [edi + 0x98], ebp
je 0x40d24b
mov ecx, dword [esp + 0x24]
test dword [edi], ecx
je 0x40d24b
mov edx, dword [esp + 0x2488]
mov eax, dword [edx + 0x418]
push eax
inc ebx
call fcn.00419a10
add esp, 4
mov dword [esp + esi*4 + 0x38], eax
inc esi
add edi, 0xac
cmp esi, dword [esp + 0xe0]
jl 0x40d220
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
cmp edi, 3
ja case.default.0x40d26c
jmp dword [edi*4 + 0x40d578]
cmp ebx, 1
jle case.default.0x40d26c
mov edi, 1
jmp 0x40d2a1
cmp ebx, ebp
jle case.default.0x40d26c
xor edi, edi
mov dword [esp + 0x14], ebp
jmp 0x40d2a5
cmp ebx, 2
jle case.default.0x40d26c
mov edi, 2
mov dword [esp + 0x14], edi
mov esi, ebx
push esi
push ecx
call fcn.00410f50
add esp, 4
push eax
lea ecx, [esp + 0x1880]
push 0x482ce0
push ecx
mov edx, 0x200
call fcn.00409920
mov eax, dword [0x4db758]
mov ecx, dword [eax + 0x4d8]
lea edx, [esp + 0x1888]
push edx
push esi
push edi
push ecx
lea edx, [esp + 0x1c98]
push edx
mov edx, 0x400
call fcn.00409920
mov eax, dword [0x4db71c]
add esp, 0x24
cmp eax, ebp
je 0x40d349
push 0x9c6
push eax
call dword [sym.imp.user32.dll_GetDlgItem]
mov esi, eax
cmp esi, ebp
je 0x40d349
mov edi, dword [sym.imp.user32.dll_SendMessageW]
lea eax, [esp + 0x1c78]
push eax
push ebp
push 0x401
push esi
call edi
push 0x48165c
push ebp
push 0x401
push esi
call edi
push 1
push ebp
push esi
call dword [sym.imp.user32.dll_InvalidateRect]
push ebp
push 7
push 0x115
push esi
call edi
mov ebx, dword [esp + 0x14]
push 0x20200
mov dword [esp + 0x14], ebp
call fcn.00431c1f
add esp, 4
mov dword [esp + 0x2c], eax
cmp eax, ebp
jne 0x40d370
mov eax, 0x10
jmp 0x40d55e
cmp ebx, ebp
jle 0x40d4b5
cmp dword [esp + 0xe0], ebp
mov dword [esp + 0x20], ebp
jle 0x40d4b5
lea ecx, [esp + 0x38]
xor edi, edi
mov dword [esp + 0x28], ecx
cmp dword [esp + edi + 0x38c], ebp
je 0x40d494
mov edx, dword [esp + 0x24]
test dword [esp + edi + 0x2f4], edx
je 0x40d494
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
sub dword [esp + 0x1c], eax
xor ebx, ebx
cmp eax, ebp
jle 0x40d487
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
imul ecx, ecx, 0x808
lea esi, [ecx + edx + 8]
cmp dword [esp + 0x10], 0x40
jge 0x40d487
mov ecx, dword [esp + 0x2488]
mov edx, dword [esp + 0x18]
mov dword [esi - 8], ecx
mov dword [esi - 4], edx
mov edx, dword [esp + edi + 0x2f4]
lea eax, [esi - 8]
mov dword [esi], edx
mov edx, dword [esp + edi + 0x2fc]
mov dword [esi + 4], edx
mov ecx, dword [ecx + 0x418]
cmp dword [ecx + 4], 0x5a495043
jne 0x40d421
mov ecx, dword [esp + edi + 0x39c]
jmp 0x40d428
mov ecx, dword [esp + edi + 0x394]
push ebp
push ebp
push eax
mov dword [esi + 0xc], ecx
mov edx, dword [esp + edi + 0x3a4]
push 0x40c340
mov dword [esi + 0x10], edx
mov ecx, dword [esp + edi + 0x3a0]
push ebp
push ebp
mov dword [esi + 0x14], ecx
mov dword [esi + 8], ebp
mov dword [esi + 0x38], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebp
call fcn.00432c3e
mov dword [esi + 0x20], eax
add esp, 0x18
cmp dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], ebp
jne 0x40d470
mov dword [esi + 0x1c], 0xdead
mov edx, dword [esp + 0x28]
inc dword [esp + 0x10]
inc ebx
add esi, 0x808
cmp ebx, dword [edx]
jl 0x40d3d7
mov eax, dword [esp + 0x14]
dec eax
cmp eax, ebp
mov dword [esp + 0x14], eax
jle 0x40d4b5
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], 4
inc eax
add edi, 0xac
cmp eax, dword [esp + 0xe0]
mov dword [esp + 0x20], eax
jl 0x40d393
cmp dword [esp + 0x1c], ebp
jge 0x40d4bf
mov dword [esp + 0x1c], ebp
mov ebx, dword [esp + 0x1c]
xor edi, edi
cmp ebx, ebp
jle 0x40d548
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
imul eax, eax, 0x808
lea esi, [eax + ecx + 8]
cmp dword [esp + 0x10], 0x40
jge 0x40d548
mov edx, dword [esp + 0x2488]
mov ecx, dword [esp + 0x18]
push ebp
push ebp
lea eax, [esi - 8]
push eax
push 0x40c340
push ebp
push ebp
mov dword [eax], edx
mov dword [esi - 4], ecx
mov dword [esi], 1
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebp
mov dword [esi + 0x14], 0x64
mov dword [esi + 8], ebp
mov dword [esi + 0x38], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x1c], ebp
call fcn.00432c3e
mov dword [esi + 0x20], eax
add esp, 0x18
cmp dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], ebp
jne 0x40d539
mov dword [esi + 0x1c], 0xdead
inc dword [esp + 0x10]
inc edi
add esi, 0x808
cmp edi, ebx
jl 0x40d4db
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [edx], eax
mov edx, dword [esp + 0x10]
mov dword [ecx], edx
xor eax, eax
mov ecx, dword [esp + 0x247c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00431784
add esp, 0x2474
ret