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

Disassembly:
push 0xffffffffffffffff
push 0x47deec
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 0x407183
cmp dword [ebx + 0x7fc], eax
jne 0x4071e1
mov eax, dword [ebx + 0x888]
mov ecx, dword [ebx + 0x884]
push 0
push ebp
push eax
push ecx
lea edi, [ebx + 0x300]
call fcn.0044d610
mov dword [ebx + 0x7fc], eax
jmp 0x4071e1
cmp ebp, 2
jl 0x4071e1
cmp dword [ebx + 0x7fc], eax
jne 0x4071b6
mov edx, dword [ebx + 0x888]
mov eax, dword [ebx + 0x884]
push 0
push 1
push edx
push eax
lea edi, [ebx + 0x300]
call fcn.0044d610
mov dword [ebx + 0x7fc], eax
or eax, 0xffffffff
cmp dword [ebx + 0x800], eax
jne 0x4071e1
mov ecx, dword [ebx + 0x888]
mov edx, dword [ebx + 0x884]
push 0
push 1
push ecx
push edx
lea edi, [ebx + 0x300]
call fcn.0044d610
mov dword [ebx + 0x800], eax
mov dword [esp + 0x28], 0
test ebp, ebp
jle 0x407788
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.00457154
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4077a0
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 0x407244
xor ecx, ecx
jmp 0x407259
mov ecx, eax
lea ebx, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407250
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.00414ad0
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 0x407288
fadd dword [0x487308]
mov eax, dword [esi + 0x28]
fdiv qword [0x4872d0]
fild dword [esi + 0x28]
test eax, eax
jge 0x40729e
fadd dword [0x487308]
faddp st(1)
lea eax, [edx - 1]
fstp dword [esp + 0x14]
cmp eax, 5
ja case.default.0x4072ac
jmp dword [eax*4 + 0x4077ac]
fld dword [0x487398]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4072ac
jmp 0x40730d
fld dword [0x487398]
jmp 0x407302
fld dword [0x487394]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4072ac
jmp 0x40730d
fld dword [0x487394]
jmp 0x407302
fld dword [0x487390]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne case.default.0x4072ac
jmp 0x40730d
fld dword [0x487390]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jp case.default.0x4072ac
xor bl, bl
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 0x7e4]
cmp eax, dword [edx + 0x7e8]
je 0x40733d
mov edx, dword [eax]
cmp dword [edx + 0x1c], ebp
je 0x40733d
mov edx, dword [esp + 0x80]
add eax, 4
cmp eax, dword [edx + 0x7e8]
jne 0x407324
mov edx, dword [esp + 0x80]
cmp eax, dword [edx + 0x7e8]
je 0x4076fc
test bl, bl
je 0x40770b
mov edi, dword [eax]
lea eax, [esp + 0x18]
lea ecx, [edi + 4]
push eax
mov dword [esp + 0x18], edi
call fcn.00413a20
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.00408b00
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 0x4073bc
mov byte [ebx + 0x19], 1
cmp dword [esp + 0x84], 1
je 0x4073cc
cmp byte [edi + 0x18], 0
je 0x407405
mov ebp, dword [esp + 0x80]
cmp dword [ebp + 0x800], 0xffffffff
jne 0x40740c
mov edx, dword [ebp + 0x888]
mov eax, dword [ebp + 0x884]
push 0
push 1
push edx
push eax
lea edi, [ebp + 0x300]
call fcn.0044d610
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x800], eax
jmp 0x40740c
mov ebp, dword [esp + 0x80]
cmp dword [edi + 0x30], 0
je 0x407450
cmp dword [esp + 0x84], 2
jl 0x407450
cmp dword [ebp + 0x7f8], 0xffffffff
jne 0x407450
push 0
mov byte [ebx + 0x1b], 1
mov ecx, dword [ebp + 0x888]
mov edx, dword [ebp + 0x884]
push 1
push ecx
push edx
lea edi, [ebp + 0x300]
call fcn.0044d610
mov edi, dword [esp + 0x14]
mov dword [ebp + 0x7f8], 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 0x4076bc
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], ecx
mov ebp, 4
call fcn.00457154
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4077a0
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.00457154
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4077a0
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.00457154
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4077a0
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 0x407552
xor ecx, ecx
jmp 0x407560
mov ecx, eax
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407557
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.00414ad0
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 0x407585
xor ecx, ecx
jmp 0x407599
mov ecx, eax
lea ebx, [ecx + 1]
lea ebx, [ebx]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x407590
sub ecx, ebx
push ecx
push eax
lea ecx, [esp + 0x48]
call fcn.00414ad0
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 0x4075be
xor eax, eax
jmp 0x4075cc
mov eax, ecx
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4075c3
sub eax, ebx
push eax
push ecx
lea ecx, [esp + 0x4c]
call fcn.00414ad0
mov eax, dword [esp + 0x44]
push eax
call fcn.004614a0
fstp dword [esp + 0x4c]
add dword [esi + 0x44], edi
add esp, 4
cmp byte [esp + 0x12], 0
je 0x4075ff
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
call fcn.00408a80
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [esp + 0x38]
call fcn.00408a80
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 0x407641
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 0x407673
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 0x4076a5
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 0x4074a3
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
je 0x4076cc
mov edi, dword [esp + 0x14]
call fcn.00433fc0
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x40774a
xor eax, eax
jmp 0x4076e0
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 0x4076e0
jmp 0x40774a
test bl, bl
je 0x40770b
cmp dword [esi + 0x38], 0
jne 0x40770b
mov byte [esp + 0x13], 0
mov eax, dword [edi + ecx]
add edi, 4
mov dword [esi + 0x44], edi
test eax, eax
jle 0x40774a
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 0x407720
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 0x407772
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 0x4071f1
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.00414a80
mov edi, edi
mov bl, 0x72
inc eax
add dh, al
jb 0x4077f3
add dh, cl
jb 0x4077f7
add cl, ah
jb 0x4077fb
add cl, ch
jb 0x4077ff
add ah, bh
jb 0x407803
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
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 dword [ebp + 0x3c], eax
mov ecx, dword [eax]
mov dword [ebp + 0x38], ecx
mov ecx, dword [ebp]
mov dword [ebp + 0x44], 4
mov eax, dword [eax + 4]
cmp eax, edx
push esi
mov dword [ebp + 0x44], 8
movzx esi, byte [ecx + 0x3d9]
mov dword [ebp + 0x28], esi
movzx ecx, byte [ecx + 0x3d8]
push edi
mov dword [esp + 0x18], eax
mov dword [ebp + 0x2c], ecx
mov dword [esp + 0x1c], edx
jle 0x407ac0
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.00414ba0
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 0x407a77
jne 0x4078ce
cmp dword [ebp + 0x2c], ebx
jb 0x407a77
push 0x78
call fcn.00456cb9
add esp, 4
mov dword [esp + 0x4c], eax
mov byte [esp + 0xa8], 2
test eax, eax
je 0x4078f2
push eax
call fcn.00408490
mov edi, eax
jmp 0x4078f4
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 + 0x308]
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 0x407e2e
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 0x407a11
mov byte [edi + 0x6c], 1
mov eax, dword [ebp]
add eax, 0x300
call fcn.0044e4b0
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 + 0x308]
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 + 0x308]
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, 0x300
call fcn.0044e530
mov esi, edi
call fcn.00434010
mov eax, dword [ebp]
mov edx, dword [eax + 0x7e4]
add eax, 0x7e0
test edx, edx
jne 0x407a2e
xor ecx, ecx
jmp 0x407a36
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 0x407a4e
mov dword [esi], edi
add esi, 4
mov dword [eax + 8], esi
jmp 0x407a5a
lea ecx, [esp + 0x28]
push ecx
push esi
push eax
call fcn.0040d040
mov edx, dword [esp + 0x24]
add dword [ebp + 0x44], edx
mov dword [esp + 0xa8], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.004146a0
jmp 0x407aad
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 0x407aad
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 0x407845
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 0x407b25
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 + 0xaf8]
mov edi, dword [esi + edx*4]
push ecx
push eax
lea edx, [edi + 0x48]
push edx
mov esi, ebp
call fcn.00407120
test al, al
jne 0x407b1e
cmp byte [edi + 0x2c], al
je 0x407eb4
inc ebx
cmp ebx, dword [esp + 0x24]
jl 0x407ae0
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 0x407ca3
jmp 0x407b50
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 + 0xb0c]
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.00407120
test al, al
je 0x407f95
mov eax, dword [ebx + 0xe0]
mov ecx, dword [edi + eax]
fld dword [ecx + 0x88]
fld dword [0x4a49b0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407c24
fld dword [ecx + 0x8c]
fld dword [0x4a49b4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407c24
fld dword [ecx + 0x90]
fld dword [0x4a49b8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407c24
fld dword [ecx + 0x94]
fld dword [0x4a49bc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x407c24
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 0x407c5a
mov eax, dword [ebp]
cmp dword [eax + 0x7f0], 0xffffffff
jne 0x407c5a
mov edx, dword [eax + 0x888]
mov ecx, dword [eax + 0x884]
push 0
push 1
push edx
push ecx
lea edi, [eax + 0x300]
call fcn.0044d610
mov edx, dword [ebp]
mov edi, dword [esp + 0x18]
mov dword [edx + 0x7f0], 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 0x407c90
mov edi, dword [edi + 0xb8]
mov edi, dword [edi - 0x18]
call fcn.00433fc0
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jl 0x407b50
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 0x4082f8
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.00408520
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 0x407d18
push esi
lea ecx, [esp + 0x18]
call fcn.00414a00
mov edx, dword [esp + 0x14]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.00460ffb
push eax
call fcn.00413e60
add esp, 0xc
cmp esi, ebx
jl 0x40847e
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x40847e
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.00407120
test al, al
je 0x40838e
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 0x40807c
mov byte [esp + 0xa8], 0x11
cmp esi, ebx
je 0x407dfe
mov dword [esp + 0x18], esi
cmp esi, edi
je 0x407df1
mov byte [esp + 0xa8], 0x11
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x407ddd
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x10]
push edx
push ecx
push eax
call fcn.004129b0
mov eax, dword [esi + 0xc]
add esp, 0xc
push eax
call fcn.00456cf3
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 0x407db0
mov eax, dword [esp + 0x34]
push eax
call fcn.00456cf3
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 0x4082d7
push str.Errors_loading_effect
lea ecx, [esp + 0x30]
call fcn.00414ba0
mov byte [esp + 0xa8], 3
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x54]
push edx
call fcn.004085b0
add esp, 0xc
mov byte [esp + 0xa8], 4
push 0x484db4
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00408650
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.00408650
add esp, 0xc
mov byte [esp + 0xa8], 6
mov ecx, dword [eax]
push 0x4978a8
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x20], ecx
call fcn.004637cb
call fcn.00457154
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x407ece
push 0x80004005
call fcn.00414a80
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.00413e40
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 0x407f28
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00414d30
mov byte [esp + 0xa8], 9
lea ecx, [esp + 0x50]
call fcn.00460ba8
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.00415200
mov byte [esp + 0xa8], 9
push 0x4978fc
lea ecx, [esp + 0x54]
push ecx
call fcn.004637cb
call fcn.00457154
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x407fb1
push 0x80004005
call fcn.00414a80
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.00413e40
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 0x408010
sub eax, ebp
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.00414d30
mov byte [esp + 0xa8], 0xe
lea ecx, [esp + 0x50]
call fcn.00460ba8
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.00415200
mov byte [esp + 0xa8], 0xe
push 0x4978fc
lea ecx, [esp + 0x54]
push ecx
call fcn.004637cb
mov eax, dword [ebp]
cmp dword [eax + 0x7f0], 0xffffffff
jne 0x4080ad
mov ecx, dword [eax + 0x888]
mov edx, dword [eax + 0x884]
push ebx
push 1
push ecx
push edx
lea edi, [eax + 0x300]
call fcn.0044d610
mov ecx, dword [ebp]
mov dword [ecx + 0x7f0], eax
lea edx, [esp + 0x58]
mov dword [esp + 0x2c], edx
call fcn.00457154
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x407ec4
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 + 0xb28]
mov edx, dword [edi + 4]
add esi, 0xb24
lea ecx, [esp + 0x50]
push ecx
push edx
push edi
call fcn.0040d230
mov ecx, esi
mov ebx, eax
call fcn.0040d2e0
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 0x408148
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 + 0xb28]
mov esi, dword [esp + 0x34]
mov edx, dword [esi]
mov ebx, dword [ecx + 4]
add eax, 0xb24
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.00434010
mov edi, dword [ebx + 0x1c]
call fcn.00433fc0
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 0x408238
cmp dword [edi + 0xc], 0
jl 0x40822c
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x40822c
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x4081d4
cmp eax, dword [esi]
jne 0x4081d4
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x408208
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 0x408479
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.00460b2b
add esp, 0x10
lea eax, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x408221
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 0x408238
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00414ad0
xor edi, edi
mov byte [esp + 0xa8], 0x11
mov esi, dword [esp + 0x34]
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x38]
je 0x40829f
mov ebx, dword [esp + 0x2c]
jmp 0x408260
mov byte [esp + 0xa8], 0x11
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x408289
mov ecx, dword [esi + 0x10]
push ebx
push ecx
push eax
call fcn.004129b0
mov eax, dword [esi + 0xc]
add esp, 0xc
push eax
call fcn.00456cf3
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 0x408260
mov ecx, dword [esp + 0x34]
push ecx
call fcn.00456cf3
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 0x4082e3
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 0x407cc6
cmp dword [esp + 0x24], 0
jg 0x40830a
cmp dword [esp + 0x28], 0
jg 0x40830a
test esi, esi
jle 0x408373
mov eax, dword [ebp]
or ebx, 0xffffffff
cmp dword [eax + 0x7f4], ebx
jne 0x40833e
mov edx, dword [eax + 0x888]
mov ecx, dword [eax + 0x884]
push 0
push 1
push edx
push ecx
lea edi, [eax + 0x300]
call fcn.0044d610
mov edx, dword [ebp]
mov dword [edx + 0x7f4], eax
test esi, esi
jle 0x408373
mov eax, dword [ebp]
cmp dword [eax + 0x804], ebx
jne 0x408373
mov ecx, dword [eax + 0x888]
mov edx, dword [eax + 0x884]
push 0
push 1
push ecx
push edx
lea edi, [eax + 0x300]
call fcn.0044d610
mov ecx, dword [ebp]
mov dword [ecx + 0x804], 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.00457154
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4083a8
push 0x80004005
call fcn.00414a80
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.00413e40
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 0x408400
sub eax, edi
push eax
push esi
lea ecx, [esp + 0x58]
call fcn.00414d30
mov byte [esp + 0xa8], 0x16
lea ecx, [esp + 0x78]
call fcn.00460ba8
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.00415200
mov byte [esp + 0xa8], 0x16
push 0x4978fc
lea ecx, [esp + 0x7c]
push ecx
call fcn.004637cb
call fcn.004149b0
push 0x80070057
call fcn.00414a80
int3