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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x44a8
call fcn.00462a40
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], 0x482784
mov dword [esp + 0x60], 0x482780
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 0x419d63
jmp 0x419680
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 0x4196e0
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 0x419712
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 0x41981b
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 0x4197fe
cmp dword [esp + 0x48], 0x258
jb 0x4197fe
mov edi, dword [esp + 0x50]
xor ecx, ecx
test ebx, ebx
jbe 0x4197bd
lea eax, [esp + 0x3bc]
jmp 0x419790
cmp dword [eax - 4], edx
jne 0x4197af
mov ebp, dword [esp + 0x48]
cmp dword [eax], ebp
jne 0x4197ab
cmp dword [eax + 8], edi
jne 0x4197ab
mov ebp, dword [eax + 4]
cmp ebp, dword [esp + 0x4c]
je 0x4197b9
mov ebp, dword [esp + 0x1c]
inc ecx
add eax, 0x10
cmp ecx, ebx
jb 0x419790
jmp 0x4197bd
mov ebp, dword [esp + 0x1c]
cmp ecx, ebx
jne 0x4197fe
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 0x4197ee
mov edi, edi
cmp edi, dword [esp + eax*4 + 0xc8]
je 0x4197ee
inc eax
cmp eax, ebp
jb 0x4197e0
cmp eax, ebp
jne 0x4197fe
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 0x419740
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jb 0x4196e0
push 0x418780
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 0x419a2f
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 0x419a22
mov ecx, dword [esi]
mov eax, 1
cmp ecx, eax
jne 0x419928
test ebx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
jne 0x419928
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x20]
test eax, 0x10000
je 0x4199c3
test eax, 0x100000
je 0x419962
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 0x419962
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x4199f8
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 0x419993
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x4199f8
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 0x4199c3
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
jne 0x4199f8
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 0x4199f0
mov dword [esp + ebx*4 + 0x78], 1
mov eax, dword [esp + ebx*4 + 0x78]
test eax, eax
je 0x419a22
mov eax, dword [edi + 0x74e04]
test eax, eax
je 0x419a22
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.004187d0
test eax, eax
jne 0x419a22
mov dword [esp + ebx*4 + 0x78], eax
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jb 0x4198d0
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x419bff
mov edx, eax
xor ebx, ebx
mov dword [esp + 0x2c], edx
jmp 0x419a50
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x14], 0
jbe 0x419bed
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + ebx + 0x3c4]
cmp eax, dword [esp + ecx*4 + 0xc8]
jne 0x419bd8
mov edx, ecx
cmp dword [esp + edx*4 + 0x78], 1
jne 0x419bd8
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x419acc
mov edi, dword [esp + ebx + 0x3b8]
lea edx, [esi + 0x144]
cmp dword [edx - 4], edi
jne 0x419abe
mov ebp, dword [edx]
cmp ebp, dword [esp + ebx + 0x3bc]
jne 0x419abe
mov ebp, dword [esp + ebx + 0x3c4]
cmp dword [edx + 4], ebp
je 0x419acc
mov ebp, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ebp
jb 0x419aa2
cmp eax, ecx
push 0xc
jne 0x419b90
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 0x419b81
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
inc dword [esi + 0x13c]
jmp 0x419bcb
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 0x419bc4
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0x20]
cmp dword [esi], 1
jne 0x419bd8
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 0x419a64
mov eax, dword [esp + 0x2c]
add ebx, 0x10
dec eax
mov dword [esp + 0x2c], eax
jne 0x419a50
mov eax, dword [esi + 0x13c]
or ebx, 0xffffffff
xor ecx, ecx
test eax, eax
mov dword [esi + 0x2468], ebx
jbe 0x419c85
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x148]
mov edi, edi
mov eax, dword [edx - 8]
cmp eax, dword [edi + 4]
jne 0x419c63
mov eax, dword [edx - 4]
cmp eax, dword [edi + 8]
jne 0x419c63
mov dword [esi + 0x2468], ecx
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x419c52
dec eax
jne 0x419c63
mov eax, dword [edx]
cmp eax, 0x14
je 0x419c73
cmp eax, 0x16
je 0x419c73
cmp eax, 0x15
jmp 0x419c61
mov eax, dword [edx]
cmp eax, 0x17
je 0x419c73
cmp eax, 0x18
je 0x419c73
cmp eax, 0x19
je 0x419c73
mov eax, dword [esi + 0x13c]
inc ecx
add edx, 0x3c
cmp ecx, eax
jb 0x419c20
jmp 0x419c85
mov edx, dword [edi + 0x10]
imul ecx, ecx, 0x3c
lea eax, [ecx + esi + 0x140]
call fcn.00419570
cmp dword [esi + 0x2468], ebx
jne 0x419cf5
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
jbe 0x419cf5
lea edx, [esi + 0x148]
mov ebx, 0x258
mov edi, 0x320
lea esp, [esp]
cmp dword [edx - 8], edi
jne 0x419cd1
cmp dword [edx - 4], ebx
jne 0x419cd1
mov dword [esi + 0x2468], eax
mov ecx, dword [edx]
cmp ecx, 0x17
je 0x419ce1
cmp ecx, 0x18
je 0x419ce1
cmp ecx, 0x19
je 0x419ce1
mov ecx, dword [esi + 0x13c]
inc eax
add edx, 0x3c
cmp eax, ecx
jb 0x419cb0
jmp 0x419cf5
imul eax, eax, 0x3c
lea eax, [eax + esi + 0x140]
mov edx, 0x3c
call fcn.00419570
mov eax, dword [esp + 0x78]
test eax, eax
je 0x419d0e
mov eax, 1
mov dword [esi + 0x138], eax
mov dword [esi + 0x246c], eax
mov eax, dword [esi + 0x13c]
test eax, eax
jbe 0x419d22
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 0x419852
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x45c]
test eax, eax
jbe 0x419d4e
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 0x419680
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74b6c]
test eax, eax
jne 0x419d7e
mov eax, 0x82000003
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
test eax, eax
jbe 0x419dc3
lea edx, [ecx + 0x470]
lea ebx, [ebx]
mov esi, dword [edx]
xor eax, eax
test esi, esi
jbe 0x419db2
lea esi, [edx + 0x2470]
mov edi, edi
cmp dword [esi], 0
jne 0x419dd0
mov ebx, dword [edx]
inc eax
add esi, 0x2478
cmp eax, ebx
jb 0x419da0
mov eax, dword [ecx + 0x74b6c]
inc edi
add edx, 0xbabc
cmp edi, eax
jb 0x419d90
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 0x419efc
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x419e5d
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 0x419e20
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 0x419e8b
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 0x419e81
jmp 0x419e28
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x419ebd
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 0x419eb0
jmp 0x419e28
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x419ef0
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 0x419ee3
jmp 0x419e28
push 2
push 0x82000009
call fcn.00418e90
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret