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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x44a8
call fcn.00450c50
mov eax, dword [ecx + 0x74bc8]
push ebx
push ebp
push esi
xor esi, esi
push edi
mov dword [esp + 0x10], ecx
mov ecx, dword [eax]
push eax
mov dword [esp + 0x5c], 0x4725fc
mov dword [esp + 0x60], 0x4725f8
mov dword [esp + 0x64], 1
mov dword [esp + 0x68], 2
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x6c], 0x16
mov dword [esp + 0x70], 0x18
mov dword [esp + 0x74], 0x17
mov dword [esp + 0x78], 0x23
call dword [ecx + 0x10]
cmp eax, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x18], esi
jbe 0x419693
jmp 0x418fb0
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x74b6c]
mov eax, dword [edi + 0x74bc8]
imul edx, edx, 0xbabc
mov ebx, dword [esp + 0x18]
mov ecx, dword [eax]
lea esi, [edx + edi + 0x14]
push esi
xor ebp, ebp
push ebp
push ebx
push eax
mov dword [esp + 0x38], esi
call dword [ecx + 0x14]
mov eax, dword [edi + 0x74bc8]
mov edx, dword [eax]
lea ecx, [esi + 0x44c]
push ecx
push ebx
push eax
call dword [edx + 0x20]
xor ebx, ebx
mov dword [esi + 0x45c], ebp
mov dword [esi + 0xbab8], ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], ebx
jmp 0x419010
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + edx*4 + 0x68]
mov eax, dword [edi + 0x74bc8]
mov edx, dword [eax]
push ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
push ecx
push eax
call dword [edx + 0x18]
cmp eax, 0x104
mov dword [esp + 0x20], eax
jbe 0x419042
mov eax, 0x104
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x458]
mov dword [esp + ebp*4 + 0xc8], edx
inc ebp
xor ecx, ecx
test eax, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], ecx
jbe 0x41914b
mov eax, ebx
shl eax, 4
lea esi, [esp + eax + 0x3bc]
mov edi, edi
mov eax, dword [edi + 0x74bc8]
mov edx, dword [eax]
lea edi, [esp + 0x44]
push edi
push ecx
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x24]
push ecx
push eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x44]
cmp edx, 0x320
jb 0x41912e
cmp dword [esp + 0x48], 0x258
jb 0x41912e
mov edi, dword [esp + 0x50]
xor ecx, ecx
test ebx, ebx
jbe 0x4190ed
lea eax, [esp + 0x3bc]
jmp 0x4190c0
cmp dword [eax - 4], edx
jne 0x4190df
mov ebp, dword [esp + 0x48]
cmp dword [eax], ebp
jne 0x4190db
cmp dword [eax + 8], edi
jne 0x4190db
mov ebp, dword [eax + 4]
cmp ebp, dword [esp + 0x4c]
je 0x4190e9
mov ebp, dword [esp + 0x1c]
inc ecx
add eax, 0x10
cmp ecx, ebx
jb 0x4190c0
jmp 0x4190ed
mov ebp, dword [esp + 0x1c]
cmp ecx, ebx
jne 0x41912e
mov eax, dword [esp + 0x4c]
mov dword [esi - 4], edx
mov edx, dword [esp + 0x48]
mov dword [esi + 4], eax
mov dword [esi], edx
mov dword [esi + 8], edi
inc ebx
add esi, 0x10
xor eax, eax
test ebp, ebp
jbe 0x41911e
mov edi, edi
cmp edi, dword [esp + eax*4 + 0xc8]
je 0x41911e
inc eax
cmp eax, ebp
jb 0x419110
cmp eax, ebp
jne 0x41912e
mov dword [esp + ebp*4 + 0xc8], edi
inc ebp
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jb 0x419070
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jb 0x419010
push 0x4180b0
push 0x10
lea ecx, [esp + 0x3c0]
push ebx
push ecx
mov dword [esp + 0x30], ebx
call dword [sym.imp.MSVCR71.dll_qsort]
add esp, 0x10
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x45c]
mov ebx, dword [esp + 0x24]
imul edx, edx, 0x2478
mov edi, dword [esp + 0x10]
lea esi, [edx + eax + 0x460]
mov eax, dword [esp + ebx + 0x60]
lea edx, [esi + 4]
push edx
mov dword [esi], eax
mov ecx, dword [edi + 0x74bc8]
mov ebp, dword [ecx]
push eax
mov eax, dword [esp + 0x20]
push eax
push ecx
call dword [ebp + 0x38]
mov ecx, dword [esp + ebx + 0x58]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
cmp eax, ebx
mov dword [esi + 0x134], ecx
mov dword [esi + 0x13c], ebx
mov dword [esi + 0x2468], ebx
mov dword [esi + 0x138], ebx
mov dword [esi + 0x246c], ebx
mov dword [esi + 0x2474], ebx
mov dword [esi + 0x2470], ebx
jbe 0x41935f
lea esp, [esp]
mov ebp, dword [esp + ebx*4 + 0xc8]
mov ecx, dword [esi]
mov eax, dword [edi + 0x74bc8]
mov edx, dword [eax]
push 0
push ebp
push ebp
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push eax
mov dword [esp + ebx*4 + 0x90], 0
mov dword [esp + ebx*4 + 0x180], 0
call dword [edx + 0x24]
test eax, eax
jl 0x419352
mov ecx, dword [esi]
mov eax, 1
cmp ecx, eax
jne 0x419258
test ebx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jne 0x419258
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x20]
test eax, 0x10000
je 0x4192f3
test eax, 0x100000
je 0x419292
mov edx, dword [edi]
push ebp
push 0x50
lea eax, [esi + 4]
push eax
mov ecx, edi
mov dword [esp + ebx*4 + 0x124], 0x50
call dword [edx + 0x10]
test eax, eax
jl 0x419292
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419328
mov edx, dword [edi]
push ebp
push 0x40
lea eax, [esi + 4]
push eax
mov ecx, edi
mov dword [esp + ebx*4 + 0x124], 0x40
call dword [edx + 0x10]
test eax, eax
jl 0x4192c3
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419328
mov edx, dword [edi]
push ebp
push 0x80
lea eax, [esi + 4]
push eax
mov ecx, edi
mov dword [esp + ebx*4 + 0x124], 0x80
call dword [edx + 0x10]
test eax, eax
jl 0x4192f3
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419328
mov edx, dword [edi]
push ebp
push 0x20
lea eax, [esi + 4]
push eax
mov ecx, edi
mov dword [esp + ebx*4 + 0x124], 0x20
call dword [edx + 0x10]
test eax, eax
jl 0x419320
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
je 0x419352
mov eax, dword [edi + 0x74e04]
test eax, eax
je 0x419352
mov ecx, dword [esp + 0x18]
lea eax, [esp + ebx*4 + 0x168]
push eax
mov eax, dword [esi]
push ebp
push eax
push ecx
mov ecx, edi
call fcn.00418100
test eax, eax
jne 0x419352
mov dword [esp + ebx*4 + 0x78], eax
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jb 0x419200
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x41952f
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x2c], edx
jmp 0x419380
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x14], 0
jbe 0x41951d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + ebx + 0x3c4]
cmp eax, dword [esp + ecx*4 + 0xc8]
jne 0x419508
mov edx, ecx
cmp dword [esp + edx*4 + 0x78], 1
jne 0x419508
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x4193fc
mov edi, dword [esp + ebx + 0x3b8]
lea edx, [esi + 0x144]
cmp dword [edx - 4], edi
jne 0x4193ee
mov ebp, dword [edx]
cmp ebp, dword [esp + ebx + 0x3bc]
jne 0x4193ee
mov ebp, dword [esp + ebx + 0x3c4]
cmp dword [edx + 4], ebp
je 0x4193fc
mov ebp, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ebp
jb 0x4193d2
cmp eax, ecx
push 0xc
jne 0x4194c0
mov eax, dword [esp + ebx + 0x3bc]
imul ecx, ecx, 0x3c
mov dword [ecx + esi + 0x140], eax
mov ecx, dword [esi + 0x13c]
mov edx, dword [esp + ebx + 0x3c0]
imul ecx, ecx, 0x3c
mov dword [ecx + esi + 0x144], edx
mov eax, dword [esi + 0x13c]
mov ecx, dword [esp + ebx + 0x3c8]
imul eax, eax, 0x3c
mov dword [eax + esi + 0x148], ecx
mov edx, dword [esi + 0x13c]
mov eax, dword [esp + 0x18]
imul edx, edx, 0x3c
mov ecx, dword [esp + eax*4 + 0x11c]
mov eax, dword [esp + eax*4 + 0x16c]
mov dword [edx + esi + 0x174], ecx
mov edx, dword [esi + 0x13c]
imul edx, edx, 0x3c
mov dword [edx + esi + 0x178], eax
mov ecx, dword [esi + 0x13c]
imul ecx, ecx, 0x3c
lea edi, [ecx + esi + 0x150]
mov ebp, dword [edi + 0x10]
mov dword [esp + 0x34], edi
add edi, 0x10
call sub.MFC71.DLL_operator_new_1
mov edx, dword [esp + ebx + 0x3c4]
add esp, 4
test ebp, ebp
mov dword [eax + 8], edx
mov dword [eax + 4], edi
mov dword [eax], ebp
mov dword [edi], eax
je 0x4194b1
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
inc dword [esi + 0x13c]
jmp 0x4194fb
imul eax, eax, 0x3c
lea eax, [eax + esi + 0x150]
mov ebp, dword [eax + 0x10]
lea edi, [eax + 0x10]
mov dword [esp + 0x34], eax
call sub.MFC71.DLL_operator_new_1
mov ecx, dword [esp + ebx + 0x3c4]
add esp, 4
test ebp, ebp
mov dword [eax + 8], ecx
mov dword [eax + 4], edi
mov dword [eax], ebp
mov dword [edi], eax
je 0x4194f4
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
cmp dword [esi], 1
jne 0x419508
mov dword [esp + 0x40], 1
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jb 0x419394
mov eax, dword [esp + 0x2c]
add ebx, 0x10
dec eax
mov dword [esp + 0x2c], eax
jne 0x419380
mov eax, dword [esi + 0x13c]
or ebx, 0xffffffff
xor ecx, ecx
test eax, eax
mov dword [esi + 0x2468], ebx
jbe 0x4195b5
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x148]
mov edi, edi
mov eax, dword [edx - 8]
cmp eax, dword [edi + 4]
jne 0x419593
mov eax, dword [edx - 4]
cmp eax, dword [edi + 8]
jne 0x419593
mov dword [esi + 0x2468], ecx
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x419582
dec eax
jne 0x419593
mov eax, dword [edx]
cmp eax, 0x14
je 0x4195a3
cmp eax, 0x16
je 0x4195a3
cmp eax, 0x15
jmp 0x419591
mov eax, dword [edx]
cmp eax, 0x17
je 0x4195a3
cmp eax, 0x18
je 0x4195a3
cmp eax, 0x19
je 0x4195a3
mov eax, dword [esi + 0x13c]
inc ecx
add edx, 0x3c
cmp ecx, eax
jb 0x419550
jmp 0x4195b5
mov edx, dword [edi + 0x10]
imul ecx, ecx, 0x3c
lea eax, [ecx + esi + 0x140]
call fcn.00418ea0
cmp dword [esi + 0x2468], ebx
jne 0x419625
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x419625
lea edx, [esi + 0x148]
mov ebx, 0x258
mov edi, 0x320
lea esp, [esp]
cmp dword [edx - 8], edi
jne 0x419601
cmp dword [edx - 4], ebx
jne 0x419601
mov dword [esi + 0x2468], eax
mov ecx, dword [edx]
cmp ecx, 0x17
je 0x419611
cmp ecx, 0x18
je 0x419611
cmp ecx, 0x19
je 0x419611
mov ecx, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ecx
jb 0x4195e0
jmp 0x419625
imul eax, eax, 0x3c
lea eax, [eax + esi + 0x140]
mov edx, 0x3c
call fcn.00418ea0
mov eax, dword [esp + 0x78]
test eax, eax
je 0x41963e
mov eax, 1
mov dword [esi + 0x138], eax
mov dword [esi + 0x246c], eax
mov eax, dword [esi + 0x13c]
test eax, eax
jbe 0x419652
mov eax, dword [esp + 0x28]
inc dword [eax + 0x45c]
mov eax, dword [esp + 0x24]
add eax, 4
cmp eax, 8
mov dword [esp + 0x24], eax
jb 0x419182
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x45c]
test eax, eax
jbe 0x41967e
mov eax, dword [esp + 0x10]
inc dword [eax + 0x74b6c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jb 0x418fb0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74b6c]
test eax, eax
jne 0x4196ae
mov eax, 0x82000003
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
test eax, eax
jbe 0x4196f3
lea edx, [ecx + 0x470]
lea ebx, [ebx]
mov esi, dword [edx]
xor eax, eax
test esi, esi
jbe 0x4196e2
lea esi, [edx + 0x2470]
mov edi, edi
cmp dword [esi], 0
jne 0x419700
mov ebx, dword [edx]
inc eax
add esi, 0x2478
cmp eax, ebx
jb 0x4196d0
mov eax, dword [ecx + 0x74b6c]
inc edi
add edx, 0xbabc
cmp edi, eax
jb 0x4196c0
mov eax, 0x82000004
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, edi
imul edx, edx, 0xbabc
mov dword [edx + ecx + 0xbacc], eax
imul eax, eax, 0x2478
add eax, edx
mov dword [ecx + 0x74b70], edi
cmp dword [eax + ecx + 0x474], 2
jne 0x41982c
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x41978d
mov ecx, 0xd
mov esi, str.No_hardware_accelerated_Direct3D_devices_nwere_found.
lea edi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1b8]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x419750
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x74e00]
mov ecx, 0x20
mov esi, str._n_nSwitching_to_the_reference_rasterizer__na_software_device_that_implements_the_entire_nDirect3D_feature_set__but_runs_very_slowly.
rep movsd dword es:[edi], dword [esi]
push 0x30
push eax
lea ecx, [esp + 0x1c0]
push ecx
push 0
movsw word es:[edi], word [esi]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4197bb
mov ecx, 0x18
mov esi, str.This_program_requires_functionality_that_is_nnot_available_on_your_Direct3D_hardware_naccelerator.
lea edi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1b8]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4197b1
jmp 0x419758
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x4197ed
mov ecx, 0x10
mov esi, str.Your_Direct3D_hardware_accelerator_cannot_nrender_into_a_window._n
lea edi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1b8]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4197e0
jmp 0x419758
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x419820
mov ecx, 0x1a
mov esi, str.Your_Direct3D_hardware_accelerator_cannot_nrender_into_a_window_with_the_current_ndesktop_display_settings._n
lea edi, [esp + 0x1b8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1b8]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x419813
jmp 0x419758
push 2
push 0x82000009
call fcn.004187c0
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret