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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x457b18
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
mov ebx, ecx
mov al, byte [ebx + 0x418]
test al, al
je 0x4124a7
mov eax, dword [0x472c58]
push esi
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x190]
mov ecx, dword [ebx + 0x720]
xor esi, esi
mov dword [ebx + 0x71c], ecx
cmp eax, esi
mov dword [esp + 0x78], esi
jle 0x412487
push ebp
push edi
lea ebp, [ebx + 0x194]
lea edi, [ebx + 0x220]
mov eax, dword [ebp]
test byte [eax + 0x1dc], 1
je 0x41226b
push eax
call fcn.0040a790
add esp, 4
mov dword [edi - 4], eax
jmp 0x412272
mov dword [edi - 4], 0
mov eax, dword [edi - 4]
cmp eax, 4
ja case.default.0x41227a
jmp dword [eax*4 + 0x4124b8]
push 0x471994
jmp 0x41229b
push 0x471dd8
jmp 0x41229b
push str.warning
jmp 0x41229b
push str.failure
lea ecx, [esp + 0x14]
call fcn.0044a917
mov edx, dword [esp + 0x10]
lea ecx, [ebx + 0xe8]
push edx
push 1
push esi
call fcn.004454c1
mov eax, dword [ebp]
test byte [eax + 0x1dc], 2
je 0x4122da
mov ecx, dword [eax + 0x1d4]
test ecx, ecx
je 0x4122da
mov eax, dword [eax + 0x1e0]
cmp eax, 0x80
jne 0x4122f4
lea eax, [esp + 0x10]
push 0x471994
push eax
call fcn.00445030
add esp, 8
mov dword [edi], 0
jmp 0x412343
mov ecx, dword [ebx + 0x214]
mov ecx, dword [ecx + 0x3c]
cmp eax, ecx
jl 0x412309
mov dword [edi], 4
jmp 0x41231a
add ecx, 0xfffffffd
xor edx, edx
cmp eax, ecx
setle dl
dec edx
and edx, 2
inc edx
mov dword [edi], edx
push eax
mov eax, dword [ebx + 0x214]
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.0040e090
lea edx, [esp + 0x20]
lea eax, [esp + 0x1c]
push edx
push 0x471aa4
push eax
call fcn.00445030
add esp, 0x18
mov ecx, dword [esp + 0x10]
push ecx
push 2
push esi
lea ecx, [ebx + 0xe8]
call fcn.004454c1
mov eax, dword [ebp]
test byte [eax + 0x1dc], 4
je 0x41244f
mov ecx, dword [eax + 0x1224]
test ecx, ecx
jle 0x41244f
mov eax, dword [eax + ecx*4 + 0x127c]
sar eax, 4
cmp eax, 0xf
ja case.0x412387.9
jmp dword [eax*4 + 0x4124cc]
lea edx, [esp + 0x10]
push 0x471dd8
push edx
call fcn.00445030
add esp, 8
jmp 0x41245d
push str.test_aborted
jmp 0x412440
lea ecx, [esp + 0x10]
push str.test_interrupted
push ecx
call fcn.00445030
add esp, 8
jmp 0x41245d
lea edx, [esp + 0x10]
push str.unknown_error
push edx
call fcn.00445030
add esp, 8
jmp 0x41245d
push str.test_failed
jmp 0x412440
lea ecx, [esp + 0x10]
push str.electrical_failure
push ecx
call fcn.00445030
add esp, 8
jmp 0x41245d
lea edx, [esp + 0x10]
push str.servo_failure
push edx
call fcn.00445030
add esp, 8
jmp 0x41245d
push str.read_failure
jmp 0x412440
lea ecx, [esp + 0x10]
push str.handling_error
push ecx
call fcn.00445030
add esp, 8
jmp 0x41245d
lea edx, [esp + 0x10]
push str.test_in_progress
push edx
call fcn.00445030
add esp, 8
jmp 0x41245d
push str.unknown_error
lea eax, [esp + 0x14]
push eax
call fcn.00445030
add esp, 8
jmp 0x41245d
push 0x471994
lea ecx, [esp + 0x14]
call fcn.0044a917
mov ecx, dword [esp + 0x10]
push ecx
push 3
push esi
lea ecx, [ebx + 0xe8]
call fcn.004454c1
mov eax, dword [ebx + 0x190]
inc esi
add ebp, 4
add edi, 0x10
cmp esi, eax
jl 0x412251
pop edi
pop ebp
mov edx, dword [ebx + 0x1c]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [esp + 8]
mov dword [esp + 0x78], 0xffffffff
call fcn.0044a78e
pop esi
mov ecx, dword [esp + 0x6c]
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret