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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x44a8
call fcn.00462d10
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], 0x48380c
mov dword [esp + 0x60], 0x483808
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 0x419f23
jmp 0x419840
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 0x4198a0
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 0x4198d2
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 0x4199db
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 0x4199be
cmp dword [esp + 0x48], 0x258
jb 0x4199be
mov edi, dword [esp + 0x50]
xor ecx, ecx
test ebx, ebx
jbe 0x41997d
lea eax, [esp + 0x3bc]
jmp 0x419950
cmp dword [eax - 4], edx
jne 0x41996f
mov ebp, dword [esp + 0x48]
cmp dword [eax], ebp
jne 0x41996b
cmp dword [eax + 8], edi
jne 0x41996b
mov ebp, dword [eax + 4]
cmp ebp, dword [esp + 0x4c]
je 0x419979
mov ebp, dword [esp + 0x1c]
inc ecx
add eax, 0x10
cmp ecx, ebx
jb 0x419950
jmp 0x41997d
mov ebp, dword [esp + 0x1c]
cmp ecx, ebx
jne 0x4199be
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 0x4199ae
mov edi, edi
cmp edi, dword [esp + eax*4 + 0xc8]
je 0x4199ae
inc eax
cmp eax, ebp
jb 0x4199a0
cmp eax, ebp
jne 0x4199be
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 0x419900
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jb 0x4198a0
push 0x418940
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 0x419bef
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 0x419be2
mov ecx, dword [esi]
mov eax, 1
cmp ecx, eax
jne 0x419ae8
test ebx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jne 0x419ae8
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x20]
test eax, 0x10000
je 0x419b83
test eax, 0x100000
je 0x419b22
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 0x419b22
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419bb8
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 0x419b53
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419bb8
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 0x419b83
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x419bb8
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 0x419bb0
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
je 0x419be2
mov eax, dword [edi + 0x74e04]
test eax, eax
je 0x419be2
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.00418990
test eax, eax
jne 0x419be2
mov dword [esp + ebx*4 + 0x78], eax
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jb 0x419a90
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x419dbf
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x2c], edx
jmp 0x419c10
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x14], 0
jbe 0x419dad
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + ebx + 0x3c4]
cmp eax, dword [esp + ecx*4 + 0xc8]
jne 0x419d98
mov edx, ecx
cmp dword [esp + edx*4 + 0x78], 1
jne 0x419d98
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x419c8c
mov edi, dword [esp + ebx + 0x3b8]
lea edx, [esi + 0x144]
cmp dword [edx - 4], edi
jne 0x419c7e
mov ebp, dword [edx]
cmp ebp, dword [esp + ebx + 0x3bc]
jne 0x419c7e
mov ebp, dword [esp + ebx + 0x3c4]
cmp dword [edx + 4], ebp
je 0x419c8c
mov ebp, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ebp
jb 0x419c62
cmp eax, ecx
push 0xc
jne 0x419d50
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 0x419d41
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
inc dword [esi + 0x13c]
jmp 0x419d8b
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 0x419d84
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
cmp dword [esi], 1
jne 0x419d98
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 0x419c24
mov eax, dword [esp + 0x2c]
add ebx, 0x10
dec eax
mov dword [esp + 0x2c], eax
jne 0x419c10
mov eax, dword [esi + 0x13c]
or ebx, 0xffffffff
xor ecx, ecx
test eax, eax
mov dword [esi + 0x2468], ebx
jbe 0x419e45
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x148]
mov edi, edi
mov eax, dword [edx - 8]
cmp eax, dword [edi + 4]
jne 0x419e23
mov eax, dword [edx - 4]
cmp eax, dword [edi + 8]
jne 0x419e23
mov dword [esi + 0x2468], ecx
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x419e12
dec eax
jne 0x419e23
mov eax, dword [edx]
cmp eax, 0x14
je 0x419e33
cmp eax, 0x16
je 0x419e33
cmp eax, 0x15
jmp 0x419e21
mov eax, dword [edx]
cmp eax, 0x17
je 0x419e33
cmp eax, 0x18
je 0x419e33
cmp eax, 0x19
je 0x419e33
mov eax, dword [esi + 0x13c]
inc ecx
add edx, 0x3c
cmp ecx, eax
jb 0x419de0
jmp 0x419e45
mov edx, dword [edi + 0x10]
imul ecx, ecx, 0x3c
lea eax, [ecx + esi + 0x140]
call fcn.00419730
cmp dword [esi + 0x2468], ebx
jne 0x419eb5
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x419eb5
lea edx, [esi + 0x148]
mov ebx, 0x258
mov edi, 0x320
lea esp, [esp]
cmp dword [edx - 8], edi
jne 0x419e91
cmp dword [edx - 4], ebx
jne 0x419e91
mov dword [esi + 0x2468], eax
mov ecx, dword [edx]
cmp ecx, 0x17
je 0x419ea1
cmp ecx, 0x18
je 0x419ea1
cmp ecx, 0x19
je 0x419ea1
mov ecx, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ecx
jb 0x419e70
jmp 0x419eb5
imul eax, eax, 0x3c
lea eax, [eax + esi + 0x140]
mov edx, 0x3c
call fcn.00419730
mov eax, dword [esp + 0x78]
test eax, eax
je 0x419ece
mov eax, 1
mov dword [esi + 0x138], eax
mov dword [esi + 0x246c], eax
mov eax, dword [esi + 0x13c]
test eax, eax
jbe 0x419ee2
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 0x419a12
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x45c]
test eax, eax
jbe 0x419f0e
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 0x419840
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74b6c]
test eax, eax
jne 0x419f3e
mov eax, 0x82000003
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
test eax, eax
jbe 0x419f83
lea edx, [ecx + 0x470]
lea ebx, [ebx]
mov esi, dword [edx]
xor eax, eax
test esi, esi
jbe 0x419f72
lea esi, [edx + 0x2470]
mov edi, edi
cmp dword [esi], 0
jne 0x419f90
mov ebx, dword [edx]
inc eax
add esi, 0x2478
cmp eax, ebx
jb 0x419f60
mov eax, dword [ecx + 0x74b6c]
inc edi
add edx, 0xbabc
cmp edi, eax
jb 0x419f50
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 0x41a0bc
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x41a01d
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 0x419fe0
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 0x41a04b
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 0x41a041
jmp 0x419fe8
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x41a07d
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 0x41a070
jmp 0x419fe8
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41a0b0
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 0x41a0a3
jmp 0x419fe8
push 2
push 0x82000009
call fcn.00419050
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret