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

Disassembly:
push 0xffffffffffffffff
push 0x48154c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
mov ebx, dword [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x80]
or eax, 0xffffffff
push edi
mov byte [esp + 0x13], 1
cmp ebp, 1
jne 0x4074b3
cmp dword [ebx + 0x1b88], eax
jne 0x407511
mov eax, dword [ebx + 0x1c14]
mov ecx, dword [ebx + 0x1c10]
push 0
push ebp
push eax
push ecx
lea edi, [ebx + 0x1684]
call fcn.0044ff90
mov dword [ebx + 0x1b88], eax
jmp 0x407511
cmp ebp, 2
jl 0x407511
cmp dword [ebx + 0x1b88], eax
jne 0x4074e6
mov edx, dword [ebx + 0x1c14]
mov eax, dword [ebx + 0x1c10]
push 0
push 1
push edx
push eax
lea edi, [ebx + 0x1684]
call fcn.0044ff90
mov dword [ebx + 0x1b88], eax
or eax, 0xffffffff
cmp dword [ebx + 0x1b8c], eax
jne 0x407511
mov ecx, dword [ebx + 0x1c14]
mov edx, dword [ebx + 0x1c10]
push 0
push 1
push ecx
push edx
lea edi, [ebx + 0x1684]
call fcn.0044ff90
mov dword [ebx + 0x1b8c], eax
mov dword [esp + 0x28], 0
test ebp, ebp
jle 0x407ab8
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x3c]
mov ebp, dword [eax + ecx]
add eax, 4
mov dword [esi + 0x44], eax
call fcn.0045a431
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x74], 1
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x3c]
mov edi, dword [eax + ecx]
add dword [esi + 0x44], 4
mov ecx, dword [esi + 0x44]
add eax, ecx
jne 0x407574
xor ecx, ecx
jmp 0x407589
mov ecx, eax
lea ebx, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407580
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00414de0
fild dword [esi + 0x2c]
add dword [esi + 0x44], edi
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x3c]
mov edx, dword [eax + ecx]
lea edi, [eax + 4]
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x44], edi
mov bl, 1
test eax, eax
jge 0x4075b8
fadd dword [0x48a3f0]
mov eax, dword [esi + 0x28]
fdiv qword [0x48a3c0]
fild dword [esi + 0x28]
test eax, eax
jge 0x4075ce
fadd dword [0x48a3f0]
faddp st(1)
lea eax, [edx - 1]
fstp dword [esp + 0x14]
cmp eax, 5
ja case.default.0x4075dc
jmp dword [eax*4 + 0x407adc]
fld dword [0x48a480]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4075dc
jmp 0x40763d
fld dword [0x48a480]
jmp 0x407632
fld dword [0x48a47c]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4075dc
jmp 0x40763d
fld dword [0x48a47c]
jmp 0x407632
fld dword [0x48a478]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4075dc
jmp 0x40763d
fld dword [0x48a478]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jp case.default.0x4075dc
xor bl, bl
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x1b70]
cmp eax, dword [edx + 0x1b74]
je 0x40766d
mov edx, dword [eax]
cmp dword [edx + 0x1c], ebp
je 0x40766d
mov edx, dword [esp + 0x80]
add eax, 4
cmp eax, dword [edx + 0x1b74]
jne 0x407654
mov edx, dword [esp + 0x80]
cmp eax, dword [edx + 0x1b74]
je 0x407a2c
test bl, bl
je 0x407a3b
mov edi, dword [eax]
lea eax, [esp + 0x18]
lea ecx, [edi + 4]
push eax
mov dword [esp + 0x18], edi
call fcn.00413d90
xor ebp, ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov byte [esp + 0x74], 3
mov ebx, dword [esp + 0x7c]
lea ecx, [esp + 0x50]
push ecx
mov eax, ebx
call fcn.00408f20
mov byte [esp + 0x74], 1
mov eax, dword [ebx + 8]
mov dword [eax - 0x18], edi
mov byte [eax - 0x14], 1
cmp byte [edi + 0x19], 0
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 4]
mov ebx, dword [eax]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
je 0x4076ec
mov byte [ebx + 0x19], 1
cmp dword [esp + 0x84], 1
je 0x4076fc
cmp byte [edi + 0x18], 0
je 0x407735
mov ebp, dword [esp + 0x80]
cmp dword [ebp + 0x1b8c], 0xffffffff
jne 0x40773c
mov edx, dword [ebp + 0x1c14]
mov eax, dword [ebp + 0x1c10]
push 0
push 1
push edx
push eax
lea edi, [ebp + 0x1684]
call fcn.0044ff90
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x1b8c], eax
jmp 0x40773c
mov ebp, dword [esp + 0x80]
cmp dword [edi + 0x30], 0
je 0x407780
cmp dword [esp + 0x84], 2
jl 0x407780
cmp dword [ebp + 0x1b84], 0xffffffff
jne 0x407780
push 0
mov byte [ebx + 0x1b], 1
mov ecx, dword [ebp + 0x1c14]
mov edx, dword [ebp + 0x1c10]
push 1
push ecx
push edx
lea edi, [ebp + 0x1684]
call fcn.0044ff90
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x1b84], eax
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x3c]
mov ebx, dword [eax + ecx]
add eax, 4
mov dword [esi + 0x44], eax
mov ecx, dword [edi + 0x10]
sub ecx, dword [edi + 0xc]
lea eax, [edi + 8]
mov dword [esp + 0x2c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
sete byte [esp + 0x12]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 0
test ebx, ebx
jle 0x4079ec
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], ecx
mov ebp, 4
call fcn.0045a431
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0x74], 6
lea ecx, [esp + 0x40]
mov dword [esp + 0x34], ecx
call fcn.0045a431
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0x74], 8
lea ecx, [esp + 0x44]
mov dword [esp + 0x34], ecx
call fcn.0045a431
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
mov byte [esp + 0x74], 0xb
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + ecx]
add ecx, 4
mov dword [esi + 0x44], ecx
mov dword [esp + 0x38], edx
mov edi, dword [ecx + eax]
add ecx, 4
add eax, ecx
mov dword [esi + 0x44], ecx
jne 0x407882
xor ecx, ecx
jmp 0x407890
mov ecx, eax
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407887
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.00414de0
add dword [esi + 0x44], edi
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x3c]
mov edi, dword [ecx + eax]
add dword [esi + 0x44], ebp
mov ecx, dword [esi + 0x44]
add eax, ecx
jne 0x4078b5
xor ecx, ecx
jmp 0x4078c9
mov ecx, eax
lea ebx, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4078c0
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.00414de0
add dword [esi + 0x44], edi
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x3c]
mov edi, dword [ecx + eax]
add dword [esi + 0x44], ebp
mov ecx, dword [esi + 0x44]
add ecx, eax
jne 0x4078ee
xor eax, eax
jmp 0x4078fc
mov eax, ecx
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4078f3
sub eax, ebx
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.00414de0
mov eax, dword [esp + 0x44]
push eax
call fcn.004647e2
fstp dword [esp + 0x4c]
add dword [esi + 0x44], edi
add esp, 4
cmp byte [esp + 0x12], 0
je 0x40792f
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
call fcn.00408ea0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [esp + 0x38]
call fcn.00408ea0
mov byte [esp + 0x74], 0xd
lea ecx, [esp + 0x44]
mov dword [esp + 0x34], ecx
mov byte [esp + 0x74], 0xd
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407971
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x74], 0xc
lea ecx, [esp + 0x40]
mov dword [esp + 0x34], ecx
mov byte [esp + 0x74], 0xc
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4079a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x74], 1
lea ecx, [esp + 0x3c]
mov dword [esp + 0x34], ecx
mov byte [esp + 0x74], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4079d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jl 0x4077d3
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x4079fc
mov edi, dword [esp + 0x14]
call fcn.004360d0
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x407a7a
xor eax, eax
jmp 0x407a10
mov edx, dword [edi + 0xc]
mov ebx, dword [esp + 0x24]
mov edx, dword [eax + edx + 0x14]
mov ebx, dword [ebx - 0xc]
mov dword [eax + ebx + 0x14], edx
add eax, 0x18
sub ecx, 1
jne 0x407a10
jmp 0x407a7a
test bl, bl
je 0x407a3b
cmp dword [esi + 0x38], 0
jne 0x407a3b
mov byte [esp + 0x13], 0
mov eax, dword [edi + ecx]
add edi, 4
mov dword [esi + 0x44], edi
test eax, eax
jle 0x407a7a
mov edi, eax
mov ebx, 4
nop
add dword [esi + 0x44], ebx
mov eax, dword [esi + 0x44]
mov edx, dword [eax + ecx]
lea eax, [edx + eax + 4]
mov dword [esi + 0x44], eax
mov eax, dword [eax + ecx]
add eax, 4
add dword [esi + 0x44], eax
mov eax, dword [esi + 0x44]
mov eax, dword [eax + ecx]
add eax, 4
add dword [esi + 0x44], eax
sub edi, 1
jne 0x407a50
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407aa2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x84]
mov dword [esp + 0x28], eax
jl 0x407521
mov ecx, dword [esp + 0x6c]
mov al, byte [esp + 0x13]
pop edi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x6c
ret 0xc
push 0x80004005
call fcn.00414d90
mov edi, edi
jecxz 0x407b53
inc eax
add dh, dh
jne 0x407b23
add dh, bh
jne 0x407b27
add byte [ecx], dl
jbe 0x407b2b
add byte [ecx], bl
jbe 0x407b2f
add byte [esi + esi*2], ch
inc eax
add ah, cl
int3
push ebp
mov ebp, dword [esp + 0xa8]
test al, 0
add byte [eax], al
mov dword [ebp + 0x40], ecx
xor edx, edx
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x3c], eax
mov ecx, dword [eax]
mov dword [ebp + 0x38], ecx
mov ecx, dword [ebp]
mov dword [ebp + 0x44], 4
ror byte [ecx + 0x45894455], cl
cmp al, 0x8b
or byte [ecx + 0x4d8b384d], cl
add bh, al
inc ebp
inc esp
add al, 0
add byte [eax], al
mov eax, dword [eax + 4]
cmp eax, edx
push esi
mov dword [ebp + 0x44], 8
movzx esi, byte [ecx + 0x175d]
mov dh, 0xb1
pop ebp
pop ss
add byte [eax], al
mov dword [ebp + 0x28], esi
movzx ecx, byte [ecx + 0x175c]
push edi
mov dword [esp + 0x18], eax
mov dword [ebp + 0x2c], ecx
mov dword [esp + 0x1c], edx
jle 0x407df0
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x44]
mov esi, dword [eax + edx]
add dword [ebp + 0x44], 4
mov ecx, dword [ebp + 0x44]
add ecx, eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00414eb0
mov dword [esp + 0xa8], 0
add dword [ebp + 0x44], esi
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x3c]
mov esi, dword [ecx + eax]
add ecx, 4
mov dword [ebp + 0x44], ecx
mov ebx, dword [ecx + eax]
add ecx, 4
mov dword [ebp + 0x44], ecx
movzx edx, byte [ecx + eax]
inc ecx
mov dword [ebp + 0x44], ecx
mov byte [esp + 0x23], dl
movzx edx, byte [eax + ecx]
inc ecx
mov dword [ebp + 0x44], ecx
mov byte [esp + 0x22], dl
movzx edx, byte [eax + ecx]
inc ecx
mov dword [ebp + 0x44], ecx
mov byte [esp + 0x21], dl
mov edx, dword [eax + ecx]
lea eax, [ecx + 4]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x24], edx
mov dword [ebp + 0x44], eax
cmp ecx, esi
jb 0x407da7
jne 0x407bfe
cmp dword [ebp + 0x2c], ebx
jb 0x407da7
push 0x78
call fcn.00459f99
add esp, 4
mov dword [esp + 0x4c], eax
mov byte [esp + 0xa8], 2
test eax, eax
je 0x407c22
push eax
call fcn.004087c0
mov edi, eax
jmp 0x407c24
xor edi, edi
mov byte [esp + 0xa8], 0
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x10]
push edx
push edi
push 0
push 0
mov dword [edi + 0x1c], eax
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x168c]
mov edx, dword [ebp + 0x44]
mov ecx, dword [esp + 0x34]
add edx, dword [ebp + 0x3c]
push 0
push 0
push ecx
push edx
push eax
mov dword [esp + 0x4c], edi
call sub.d3dx9_39.dll_D3DXCreateEffect
cmp dword [esp + 0x10], 0
jne 0x40815e
cmp byte [esp + 0x23], 0
setne al
cmp byte [esp + 0x22], 0
mov byte [edi + 0x18], al
setne cl
cmp byte [esp + 0x21], 0
mov byte [edi + 0x19], cl
setne dl
mov byte [edi + 0x1a], dl
mov byte [edi + 0x1b], 0
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], ebx
mov byte [edi + 0x6c], 0
cmp dword [edi + 0x20], 0
jne 0x407d41
mov byte [edi + 0x6c], 1
mov eax, dword [ebp]
add eax, 0x1684
call fcn.00450df0
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0xfc]
call eax
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x100]
push 0
push eax
call edx
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x104]
push eax
call edx
mov eax, dword [ebp]
mov eax, dword [eax + 0x168c]
mov ecx, dword [eax]
lea edx, [edi + 0x70]
push edx
push 0x13
push eax
mov eax, dword [ecx + 0xe8]
call eax
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x168c]
mov edx, dword [eax]
mov edx, dword [edx + 0xe8]
lea ecx, [edi + 0x74]
push ecx
push 0x14
push eax
call edx
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x108]
push eax
call edx
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10c]
push eax
call edx
mov esi, dword [ebp]
add esi, 0x1684
call fcn.00450e70
mov esi, edi
call fcn.00436120
mov eax, dword [ebp]
mov edx, dword [eax + 0x1b70]
add eax, 0x1b6c
test edx, edx
jne 0x407d5e
xor ecx, ecx
jmp 0x407d66
mov ecx, dword [eax + 0xc]
sub ecx, edx
sar ecx, 2
mov esi, dword [eax + 8]
mov ebx, esi
sub ebx, edx
sar ebx, 2
cmp ebx, ecx
jae 0x407d7e
mov dword [esi], edi
add esi, 4
mov dword [eax + 8], esi
jmp 0x407d8a
lea ecx, [esp + 0x28]
push ecx
push esi
push eax
call fcn.0043e300
mov edx, dword [esp + 0x24]
add dword [ebp + 0x44], edx
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.004149b0
jmp 0x407ddd
add eax, edx
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x44], eax
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407ddd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
jl 0x407b75
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov ecx, dword [eax + ecx]
add eax, 4
xor ebx, ebx
mov dword [esp + 0x24], ecx
mov dword [ebp + 0x44], eax
test ecx, ecx
jle 0x407e55
lea esp, [esp]
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov edx, dword [ecx + eax]
add eax, 4
mov dword [ebp + 0x44], eax
mov ecx, dword [eax + ecx]
add eax, 4
mov dword [ebp + 0x44], eax
mov eax, dword [ebp]
mov esi, dword [eax + 0x1e88]
mov edi, dword [esi + edx*4]
push ecx
push eax
lea edx, [edi + 0x48]
push edx
mov esi, ebp
call fcn.00407450
test al, al
jne 0x407e4e
cmp byte [edi + 0x2c], al
je 0x4081e4
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x407e10
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [eax + edx]
add eax, 4
mov dword [esp + 0x28], ecx
mov dword [ebp + 0x44], eax
mov dword [esp + 0x1c], 0
test ecx, ecx
jle 0x407fd3
jmp 0x407e80
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x3c]
mov esi, dword [eax + ecx]
mov edx, dword [ebp]
add ecx, 4
mov dword [ebp + 0x44], ecx
mov edi, dword [ecx + eax]
add ecx, 4
mov dword [ebp + 0x44], ecx
mov eax, dword [eax + ecx]
add ecx, 4
mov dword [ebp + 0x44], ecx
mov ecx, dword [edx + 0x1ea8]
mov ebx, dword [ecx + esi*4]
mov ecx, dword [ebx + 0xe0]
add edi, edi
add edi, edi
push eax
push edx
mov edx, dword [ecx + edi]
add ecx, edi
add edx, 0xb0
push edx
mov esi, ebp
mov dword [esp + 0x24], edi
call fcn.00407450
test al, al
je 0x4082c5
mov eax, dword [ebx + 0xe0]
mov ecx, dword [edi + eax]
fld dword [ecx + 0x88]
fld dword [0x4a79c8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407f54
fld dword [ecx + 0x8c]
fld dword [0x4a79cc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407f54
fld dword [ecx + 0x90]
fld dword [0x4a79d0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407f54
fld dword [ecx + 0x94]
fld dword [0x4a79d4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407f54
mov edx, dword [ecx + 0xb8]
sub edx, dword [ecx + 0xb4]
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x407f8a
mov eax, dword [ebp]
cmp dword [eax + 0x1b7c], 0xffffffff
jne 0x407f8a
mov edx, dword [eax + 0x1c14]
mov ecx, dword [eax + 0x1c10]
push 0
push 1
push edx
push ecx
lea edi, [eax + 0x1684]
call fcn.0044ff90
mov edx, dword [ebp]
mov edi, dword [esp + 0x18]
mov dword [edx + 0x1b7c], eax
mov eax, dword [ebx + 0xe0]
mov edi, dword [edi + eax]
mov ecx, dword [edi + 0xb8]
sub ecx, dword [edi + 0xb4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x407fc0
mov edi, dword [edi + 0xb8]
mov edi, dword [edi - 0x18]
call fcn.004360d0
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jl 0x407e80
mov eax, dword [ebp + 0x44]
mov edx, dword [ebp + 0x3c]
mov esi, dword [eax + edx]
add eax, 4
mov dword [esp + 0x4c], esi
mov dword [ebp + 0x44], eax
mov dword [esp + 0x1c], 0
test esi, esi
jle 0x408628
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x3c]
mov edi, dword [ecx + eax]
add eax, 4
mov dword [ebp + 0x44], eax
lea esi, [eax + ecx]
lea eax, [esp + 0x14]
push eax
xor ebx, ebx
call fcn.00408850
mov dword [esp + 0xa8], 0x11
add dword [ebp + 0x44], edi
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x408048
push esi
lea ecx, [esp + 0x18]
call fcn.00414d10
mov edx, dword [esp + 0x14]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.004642d8
push eax
call fcn.004141d0
add esp, 0xc
cmp esi, ebx
jl 0x4087ae
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x4087ae
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x14]
mov byte [esi + edx], 0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0xa8], 0x13
mov eax, dword [ebp]
push 1
push eax
lea ecx, [esp + 0x38]
push ecx
mov esi, ebp
call fcn.00407450
test al, al
je 0x4086be
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ecx, edi
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4083ac
mov byte [esp + 0xa8], 0x11
cmp esi, ebx
je 0x40812e
mov dword [esp + 0x18], esi
cmp esi, edi
je 0x408121
mov byte [esp + 0xa8], 0x11
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x40810d
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x10]
push edx
push ecx
push eax
call fcn.00412fd0
mov eax, dword [esi + 0xc]
add esp, 0xc
push eax
call fcn.00459fc8
add esp, 4
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
add esi, 0x18
mov dword [esp + 0x18], esi
cmp esi, edi
jne 0x4080e0
mov eax, dword [esp + 0x34]
push eax
call fcn.00459fc8
add esp, 4
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x408607
push str.Errors_loading_effect
lea ecx, [esp + 0x30]
call fcn.00414eb0
mov byte [esp + 0xa8], 3
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x54]
push edx
call fcn.00408980
add esp, 0xc
mov byte [esp + 0xa8], 4
push 0x487e7c
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408a20
add esp, 0xc
mov esi, eax
mov byte [esp + 0xa8], 5
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push eax
call edx
push eax
lea eax, [esp + 0x28]
push esi
push eax
call fcn.00408a20
add esp, 0xc
mov byte [esp + 0xa8], 6
mov ecx, dword [eax]
push 0x49a9d0
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x20], ecx
call fcn.00466bcb
call fcn.0045a431
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4081fe
push 0x80004005
call fcn.00414d90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0xa8], 8
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x34]
push ecx
mov ecx, dword [ebp + 0x30]
push edx
push eax
push ecx
lea edx, [esp + 0x20]
push str.This_application_uses_Pixel_Shader__d._d_for_effects__but_your_graphics_hardware_only_supports_Pixel_Shader__d._d_effects.__Please_upgrade_your_graphics_hardware_or_try_again_on_another_computer.
push edx
call fcn.004141b0
mov esi, dword [esp + 0x28]
add esp, 0x18
mov ebx, 0xf
xor ebp, ebp
mov eax, esi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebp
mov byte [esp + 0x34], 0
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408258
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00415040
mov byte [esp + 0xa8], 9
lea ecx, [esp + 0x50]
call fcn.00463e85
mov byte [esp + 0xa8], 0xa
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x5c], vtable.std::runtime_error.0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x6c], 0
call fcn.00415510
mov byte [esp + 0xa8], 9
push 0x49aa24
lea ecx, [esp + 0x54]
push ecx
call fcn.00466bcb
call fcn.0045a431
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4082e1
push 0x80004005
call fcn.00414d90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0xa8], 0xd
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x34]
push ecx
mov ecx, dword [ebp + 0x30]
push edx
push eax
push ecx
lea edx, [esp + 0x20]
push str.This_application_uses_Pixel_Shader__d._d_for_effects__but_your_graphics_hardware_only_supports_Pixel_Shader__d._d_effects.__Please_upgrade_your_graphics_hardware_or_try_again_on_another_computer.
push edx
call fcn.004141b0
mov esi, dword [esp + 0x28]
mov ebx, 0xf
mov eax, esi
add esp, 0x18
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], edi
mov byte [esp + 0x34], 0
lea ebp, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408340
sub eax, ebp
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00415040
mov byte [esp + 0xa8], 0xe
lea ecx, [esp + 0x50]
call fcn.00463e85
mov byte [esp + 0xa8], bl
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x68]
mov dword [esp + 0x5c], vtable.std::runtime_error.0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], edi
mov byte [esp + 0x6c], 0
call fcn.00415510
mov byte [esp + 0xa8], 0xe
push 0x49aa24
lea ecx, [esp + 0x54]
push ecx
call fcn.00466bcb
mov eax, dword [ebp]
cmp dword [eax + 0x1b7c], 0xffffffff
jne 0x4083dd
mov ecx, dword [eax + 0x1c14]
mov edx, dword [eax + 0x1c10]
push ebx
push 1
push ecx
push edx
lea edi, [eax + 0x1684]
call fcn.0044ff90
mov ecx, dword [ebp]
mov dword [ecx + 0x1b7c], eax
lea edx, [esp + 0x58]
mov dword [esp + 0x2c], edx
call fcn.0045a431
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x4081f4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x58], eax
mov byte [esp + 0xa8], 0x1d
mov esi, dword [ebp]
mov edi, dword [esi + 0x1ec4]
mov edx, dword [edi + 4]
add esi, 0x1ec0
lea ecx, [esp + 0x50]
push ecx
push edx
push edi
call fcn.0040d820
mov ecx, esi
mov ebx, eax
call fcn.0040d8d0
mov dword [edi + 4], ebx
mov eax, dword [ebx + 4]
mov dword [eax], ebx
mov byte [esp + 0xa8], 0x13
lea eax, [esp + 0x58]
mov dword [esp + 0x2c], eax
mov byte [esp + 0xa8], 0x13
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408478
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp]
mov ecx, dword [eax + 0x1ec4]
mov esi, dword [esp + 0x34]
mov edx, dword [esi]
mov ebx, dword [ecx + 4]
add eax, 0x1ec0
mov eax, dword [edx]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x24]
push str.prog
push 0
push eax
call edx
mov dword [ebx + 0x18], eax
mov eax, dword [ebp]
mov dword [ebx + 0x28], eax
mov esi, dword [esi]
mov dword [ebx + 0x1c], esi
call fcn.00436120
mov edi, dword [ebx + 0x1c]
call fcn.004360d0
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 0x10]
add ebx, 0x10
lea esi, [eax - 0x10]
sub edi, 0x10
mov dword [esp + 0x10], ebx
cmp esi, edi
je 0x408568
cmp dword [edi + 0xc], 0
jl 0x40855c
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x40855c
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x408504
cmp eax, dword [esi]
jne 0x408504
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x408538
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x4087a9
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
add esi, 0x10
push esi
push eax
lea ecx, [ebx + 0x10]
push ecx
call fcn.00463e08
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x408551
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [esp + 0x10]
add ebx, 0x10
mov dword [eax], ebx
jmp 0x408568
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00414de0
xor edi, edi
mov byte [esp + 0xa8], 0x11
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x38]
je 0x4085cf
mov ebx, dword [esp + 0x2c]
jmp 0x408590
mov byte [esp + 0xa8], 0x11
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x4085b9
mov ecx, dword [esi + 0x10]
push ebx
push ecx
push eax
call fcn.00412fd0
mov eax, dword [esi + 0xc]
add esp, 0xc
push eax
call fcn.00459fc8
add esp, 4
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
add esi, 0x18
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x38]
jne 0x408590
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00459fc8
add esp, 4
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408613
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x4c]
inc eax
cmp eax, esi
mov dword [esp + 0x1c], eax
jl 0x407ff6
cmp dword [esp + 0x24], 0
jg 0x40863a
cmp dword [esp + 0x28], 0
jg 0x40863a
test esi, esi
jle 0x4086a3
mov eax, dword [ebp]
or ebx, 0xffffffff
cmp dword [eax + 0x1b80], ebx
jne 0x40866e
mov edx, dword [eax + 0x1c14]
mov ecx, dword [eax + 0x1c10]
push 0
push 1
push edx
push ecx
lea edi, [eax + 0x1684]
call fcn.0044ff90
mov edx, dword [ebp]
mov dword [edx + 0x1b80], eax
test esi, esi
jle 0x4086a3
mov eax, dword [ebp]
cmp dword [eax + 0x1b90], ebx
jne 0x4086a3
mov ecx, dword [eax + 0x1c14]
mov edx, dword [eax + 0x1c10]
push 0
push 1
push ecx
push edx
lea edi, [eax + 0x1684]
call fcn.0044ff90
mov ecx, dword [ebp]
mov dword [ecx + 0x1b90], eax
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x9c
ret 8
call fcn.0045a431
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4086d8
push 0x80004005
call fcn.00414d90
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0xa8], 0x15
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x34]
push ecx
mov ecx, dword [ebp + 0x30]
push edx
push eax
push ecx
lea edx, [esp + 0x20]
push str.This_application_uses_Pixel_Shader__d._d_for_effects__but_your_graphics_hardware_only_supports_Pixel_Shader__d._d_effects.__Please_upgrade_your_graphics_hardware_or_try_again_on_another_computer.
push edx
call fcn.004141b0
mov esi, dword [esp + 0x28]
add esp, 0x18
mov ebx, 0xf
xor ebp, ebp
mov eax, esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ebp
mov byte [esp + 0x54], 0
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408730
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x58]
call fcn.00415040
mov byte [esp + 0xa8], 0x16
lea ecx, [esp + 0x78]
call fcn.00463e85
mov byte [esp + 0xa8], 0x17
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x90]
mov dword [esp + 0x84], vtable.std::runtime_error.0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa4], ebp
mov byte [esp + 0x94], 0
call fcn.00415510
mov byte [esp + 0xa8], 0x16
push 0x49aa24
lea ecx, [esp + 0x7c]
push ecx
call fcn.00466bcb
call fcn.00414cc0
push 0x80070057
call fcn.00414d90
int3