Function at 0x43bc80
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov esi, dword [esp + 0xb0]
movapd xmm0, xmmword [0x4f3d10]
movupd xmmword [esp + 0x78], xmm0
lea eax, [esp + 0x78]
push eax
push esi
call dbg.ffDetectGPU
add esp, 8
test eax, eax
je 0x43bcd1
add esi, 0x20
push eax
push 0x4f3d64
push 0
push esi
push 0
push 0x4f3d60
call dbg.ffPrintError
add esp, 0x18
jmp 0x43c823
mov ebx, dword [esp + 0x80]
test ebx, ebx
je 0x43c720
lea eax, [ebx*4]
push eax
call sym._malloc
add esp, 4
test ebx, ebx
jle 0x43c735
mov edx, dword [esp + 0x78]
lea edi, [edx + 0x78]
mov dword [esp + 4], 0
mov esi, ebx
mov ebp, edx
jmp 0x43bd33
mov dword [eax + ecx*4], ebp
inc ecx
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x78]
add ebp, 0x78
mov ecx, edi
sub ecx, edx
sar ecx, 3
imul ecx, ecx, 0xeeeeeeef
add edi, 0x78
cmp ecx, ebx
jge 0x43bd90
mov ecx, dword [ebp]
cmp ecx, 2
je 0x43bd50
cmp ecx, 1
jne 0x43bd5d
mov ecx, dword [esp + 0xb0]
cmp dword [ecx + 0x48], 1
je 0x43bd1c
jmp 0x43bd5d
mov ecx, dword [esp + 0xb0]
cmp dword [ecx + 0x48], 2
je 0x43bd1c
mov ecx, dword [esp + 4]
cmp ecx, esi
jne 0x43bd10
lea esi, [ecx + ecx]
test ecx, ecx
mov ecx, 0x10
cmove esi, ecx
lea ecx, [esi*4]
push ecx
push eax
call sym._realloc
mov ecx, dword [esp + 0xc]
add esp, 8
mov ebx, dword [esp + 0x80]
jmp 0x43bd10
mov edx, dword [esp + 4]
test edx, edx
je 0x43c739
mov ebp, dword [esp + 0xb0]
lea ecx, [ebp + 0x20]
mov dword [esp + 0x88], ecx
xor ebp, ebp
jmp 0x43bdda
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x8c]
cmp ebp, edx
je 0x43c724
mov ecx, ebp
mov edi, dword [eax + ebp*4]
lea esi, [ebp + 1]
cmp edx, 1
mov ebx, esi
mov ecx, 0
cmove ebx, ecx
mov ecx, dword [edi]
cmp ecx, 2
mov ebp, 0x4f3e8f
mov edx, 0x4f3e86
cmove ebp, edx
cmp ecx, 1
mov ecx, 0x4f3e7b
cmove ebp, ecx
mov ecx, dword [esp + 0xb0]
cmp dword [ecx + 0x3c], 0
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], esi
je 0x43bf70
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov eax, dword [0x5052b0]
mov dword [esp + 0x74], eax
movsd xmm0, qword [edi + 0x38]
movzx eax, word [ecx + 0x4f]
mov word [esp + 0xc], ax
sub esp, 0x10
mov word [esp + 0xc], ax
lea esi, [esp + 0x7c]
mov dword [esp + 8], esi
movsd qword [esp], xmm0
call dbg.ffTempsAppendNum
add esp, 0x10
mov dword [esp + 0xc], 7
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 7
lea eax, [edi + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 7
lea eax, [edi + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 7
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], 5
lea eax, [edi + 0x40]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 6
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], 2
lea eax, [edi + 0x50]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 2
lea eax, [edi + 0x58]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 2
lea eax, [edi + 0x60]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 2
lea eax, [edi + 0x68]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 7
lea eax, [edi + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 9
add edi, 0x48
mov dword [esp + 0x68], edi
movzx eax, bl
lea ecx, [esp + 0xc]
push ecx
push 0xc
push 0
push dword [esp + 0x94]
push eax
push 0x4f3d60
call dbg.ffPrintFormat
add esp, 0x18
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
je 0x43bdc0
mov dword [esp + 0x6c], 0
push dword [esp + 0x74]
call sym._free
add esp, 4
jmp 0x43bdc0
mov dword [esp + 0x98], ebp
movzx eax, bl
push 0
push dword [esp + 0x8c]
push eax
push 0x4f3d60
call dbg.ffPrintLogoAndKey
add esp, 0x10
mov esi, dword [edi + 0x14]
mov ebx, dword [edi + 8]
add ebx, esi
mov ebp, ebx
inc ebp
mov dword [esp + 0xc], ebp
jne 0x43bfaa
mov edx, dword [0x5052b0]
jmp 0x43bfbb
push ebp
call sym._malloc
add esp, 4
mov edx, eax
mov byte [eax], 0
mov esi, dword [edi + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], 0
mov eax, edi
mov edi, dword [edi + 8]
test edi, edi
mov dword [esp], eax
je 0x43c125
mov ecx, dword [eax + 0xc]
cmp esi, edi
jb 0x43c00d
push edi
push ecx
mov eax, dword [esp + 8]
push dword [eax + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp + 0xa0], ecx
call sym._memcmp
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x14]
add esp, 0xc
test eax, eax
je 0x43c125
test ecx, ecx
je 0x43c04e
test ebp, ebp
je 0x43c01b
xor eax, eax
cmp ebx, edi
jae 0x43c070
mov ebx, ecx
cmp ebp, 2
mov eax, ebp
mov ecx, 0x20
cmovb eax, ecx
lea ecx, [edi + 1]
nop dword [eax]
mov esi, eax
add eax, eax
cmp ecx, esi
ja 0x43c030
test ebp, ebp
je 0x43c056
push esi
push edx
call sym._realloc
add esp, 8
mov edx, eax
mov eax, dword [esp + 0x10]
jmp 0x43c066
xor esi, esi
test ebp, ebp
jne 0x43c099
jmp 0x43c0a0
push esi
call sym._malloc
add esp, 4
mov edx, eax
mov byte [eax], 0
xor eax, eax
mov ecx, ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
add eax, edx
push edi
push ecx
push eax
call sym._memcpy
add esp, 0xc
add edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov byte [eax + edi], 0
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test ebp, ebp
je 0x43c0a0
lea eax, [esi + 1]
cmp ebp, eax
jne 0x43c0d5
cmp ebp, 2
mov eax, ebp
mov ecx, 0x20
cmovb eax, ecx
lea ecx, [esi + 2]
mov ebx, eax
add eax, eax
cmp ecx, ebx
ja 0x43c0b0
test ebp, ebp
je 0x43c0db
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c104
mov edi, dword [esp + 0x14]
jmp 0x43c10b
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c0fd
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c100
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
lea eax, [esi + 1]
mov dword [esp + 0x10], eax
mov byte [edi + esi], 0x20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esp]
mov esi, dword [eax + 0x14]
test esi, esi
mov edi, dword [esp]
je 0x43c1ec
mov edx, dword [edi + 0x18]
test edx, edx
je 0x43c1ec
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
test eax, eax
je 0x43c151
mov ecx, ebp
not ecx
add ecx, eax
cmp ecx, esi
jae 0x43c195
mov dword [esp + 8], edx
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + ebp]
inc edx
nop word cs:[eax + eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c170
test eax, eax
je 0x43c19b
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x10]
jmp 0x43c1c4
mov edi, dword [esp + 0x14]
jmp 0x43c1cc
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test ebp, ebp
je 0x43c1bd
lea eax, [ebp + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c1c0
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov edx, dword [esp + 8]
mov dword [esp + 0xc], ebx
add ebp, edi
push esi
push edx
push ebp
call sym._memcpy
add esp, 0xc
add esi, dword [esp + 0x10]
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x14]
mov byte [eax + esi], 0
mov edi, dword [esp]
mov eax, dword [edi + 0x40]
cmp eax, 0xffffffff
je 0x43c207
push eax
push str.___d_
lea eax, [esp + 0x14]
push eax
call dbg.ffStrbufAppendF
add esp, 0xc
movsd xmm0, qword [edi + 0x48]
ucomisd xmm0, qword [0x4f3d48]
jbe 0x43c236
sub esp, 0x10
movsd qword [esp + 8], xmm0
lea eax, [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], str.____.2f_GHz
call dbg.ffStrbufAppendF
add esp, 0x10
movsd xmm0, qword [edi + 0x38]
ucomisd xmm0, xmm0
mov ebp, dword [esp + 0x8c]
jp 0x43c32c
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x43c263
mov ecx, esi
not ecx
add ecx, eax
cmp ecx, 3
jae 0x43c2a5
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + 4]
nop word cs:[eax + eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c280
test eax, eax
je 0x43c2ab
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c2d4
mov edi, dword [esp + 0x14]
jmp 0x43c2d8
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c2cd
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c2d0
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov byte [edi + esi + 2], 0x20
mov word [edi + esi], 0x2d20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 3]
mov dword [esp + 0x10], edx
mov byte [ecx + eax + 3], 0
mov edi, dword [esp]
movsd xmm0, qword [edi + 0x38]
mov eax, dword [esp + 0xb0]
movzx eax, word [eax + 0x4f]
mov word [esp + 0x6c], ax
sub esp, 0x10
mov word [esp + 0xc], ax
lea eax, [esp + 0x1c]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call dbg.ffTempsAppendNum
add esp, 0x10
mov eax, dword [edi + 0x50]
mov ecx, dword [edi + 0x54]
add eax, 1
adc ecx, 0
cmp eax, 2
sbb ecx, 0
jae 0x43c3c8
cmp dword [edi], 0
je 0x43c362
push dword [esp + 0x98]
push 0x4f401e
lea eax, [esp + 0x14]
push eax
call dbg.ffStrbufAppendF
add esp, 0xc
push 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
mov edi, eax
push eax
push dword [esp + 0x14]
push 1
push dword [esp + 0x20]
call sym._fwrite
add esp, 0x10
push edi
push 0xa
call sym._fputc
add esp, 8
cmp dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
je 0x43c3b0
mov dword [esp + 0xc], 0
push dword [esp + 0x14]
call sym._free
add esp, 4
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 4]
cmp ebp, edx
jne 0x43bdda
jmp 0x43c724
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x43c3df
mov ecx, esi
not ecx
add ecx, eax
cmp ecx, 2
jae 0x43c415
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + 3]
nop
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c3f0
test eax, eax
je 0x43c41b
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c444
mov edi, dword [esp + 0x14]
jmp 0x43c448
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c43d
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c440
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov word [edi + esi], 0x2820
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 2]
mov dword [esp + 0x10], edx
mov byte [ecx + eax + 2], 0
mov esi, dword [esp]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x43c52a
lea edx, [esp + 0xc]
push edx
push ecx
push eax
call dbg.ffParseSize
add esp, 0xc
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x43c49e
mov ecx, esi
not ecx
add ecx, eax
cmp ecx, 3
jae 0x43c4d5
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + 4]
nop
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c4b0
test eax, eax
je 0x43c4db
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c504
mov edi, dword [esp + 0x14]
jmp 0x43c508
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c4fd
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c500
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov byte [edi + esi + 2], 0x20
mov word [edi + esi], 0x2f20
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 3]
mov dword [esp + 0x10], edx
mov byte [ecx + eax + 3], 0
mov esi, dword [esp]
lea eax, [esp + 0xc]
push eax
push dword [esi + 0x54]
push dword [esi + 0x50]
call dbg.ffParseSize
add esp, 0xc
mov eax, dword [esi + 0x58]
and eax, dword [esi + 0x5c]
cmp eax, 0xffffffff
je 0x43c676
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x43c563
mov ecx, esi
not ecx
add ecx, eax
cmp ecx, 2
jae 0x43c5a5
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + 3]
nop word cs:[eax + eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c580
test eax, eax
je 0x43c5ab
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c5d4
mov edi, dword [esp + 0x14]
jmp 0x43c5d8
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c5cd
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c5d0
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
mov word [edi + esi], 0x202c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 2]
mov dword [esp + 0x10], edx
mov byte [ecx + eax + 2], 0
mov eax, dword [esp]
movsd xmm1, qword [eax + 0x58]
movapd xmm2, xmmword [0x4f3d20]
unpcklps xmm1, xmm2
movapd xmm3, xmmword [0x4f3d30]
subpd xmm1, xmm3
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
movsd xmm1, qword [eax + 0x50]
unpcklps xmm1, xmm2
subpd xmm1, xmm3
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm0, xmm2
mulsd xmm0, qword [0x4f3d40]
mov eax, dword [esp + 0xb0]
movzx eax, word [eax + 0x51]
mov word [esp + 0x6c], ax
sub esp, 0x14
mov word [esp + 0xc], ax
lea eax, [esp + 0x20]
mov dword [esp], eax
movsd qword [esp + 4], xmm0
mov dword [esp + 0x10], 0
call dbg.ffPercentAppendNum
add esp, 0x14
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test eax, eax
je 0x43c689
lea ecx, [esi + 1]
cmp eax, ecx
jne 0x43c6c5
cmp eax, 2
mov ecx, eax
mov edx, 0x20
cmovb ecx, edx
lea edx, [esi + 2]
nop dword [eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x43c6a0
test eax, eax
je 0x43c6cb
push ebx
push dword [esp + 0x18]
call sym._realloc
add esp, 8
mov edi, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
jmp 0x43c6f4
mov edi, dword [esp + 0x14]
jmp 0x43c6fb
push ebx
call sym._malloc
add esp, 4
mov edi, eax
test esi, esi
je 0x43c6ed
lea eax, [esi + 1]
push eax
push dword [esp + 0x18]
push edi
call sym._memcpy
add esp, 0xc
jmp 0x43c6f0
mov byte [edi], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebx
lea ecx, [esi + 1]
mov dword [esp + 0x10], ecx
mov byte [edi + esi], 0x29
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax], 0
mov edi, dword [esp]
cmp dword [edi], 0
jne 0x43c349
jmp 0x43c362
xor ebx, ebx
jmp 0x43c742
mov ebx, eax
cmp dword [esp + 0x80], 0
jg 0x43c76a
jmp 0x43c816
mov ebx, eax
jmp 0x43c742
mov ebx, eax
mov esi, dword [esp + 0xb0]
add esi, 0x20
push str.No_GPUs_found
push 0
push esi
push 0
push 0x4f3d60
call dbg.ffPrintError
add esp, 0x14
cmp dword [esp + 0x80], 0
jle 0x43c816
mov esi, dword [esp + 0x78]
lea edi, [esi + 0x78]
add esi, 0x24
jmp 0x43c7a0
mov dword [esi], eax
mov eax, edi
sub eax, dword [esp + 0x78]
sar eax, 3
imul eax, eax, 0xeeeeeeef
add edi, 0x78
add esi, 0x78
cmp eax, dword [esp + 0x80]
jge 0x43c816
cmp dword [esi - 0x20], 0
mov dword [esi - 0x1c], 0
je 0x43c7bf
mov dword [esi - 0x20], 0
push dword [esi - 0x18]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
mov dword [esi - 0x18], eax
cmp dword [esi - 0x14], 0
mov dword [esi - 0x10], 0
je 0x43c7eb
mov dword [esi - 0x14], 0
push dword [esi - 0xc]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
mov dword [esi - 0xc], eax
cmp dword [esi - 8], 0
mov dword [esi - 4], 0
je 0x43c780
mov dword [esi - 8], 0
push dword [esi]
call sym._free
add esp, 4
mov eax, dword [0x5052b0]
jmp 0x43c780
test ebx, ebx
je 0x43c823
push ebx
call sym._free
add esp, 4
mov eax, dword [esp + 0x78]
test eax, eax
je 0x43c84a
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
push eax
call sym._free
add esp, 4
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret