Function at 0x4990dd
Capabilities:
Print debug messages

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0x60
cmp dword [ebp + 0xf8], 0x22
je 0x49a012
cmp byte [ebp + 0x149], 0
je 0x49936e
cmp byte [ebp + 0x148], 0
jne 0x499366
push 1
push dword [ebp + 0x78]
call fcn.004a90b0
mov dword [ebp + 0x78], eax
xor eax, eax
mov dword [ebp + 0x114], eax
pop ecx
xor eax, eax
pop ecx
push 0
mov dword [ebp + 0x118], eax
call fcn.004ab060
xor dl, dl
cmp byte [0x94d788], 0
pop ecx
je 0x499151
xor eax, eax
cmp byte [0x936908], 0
jne 0x49914b
inc eax
test al, al
je 0x499151
mov dl, 1
test dl, dl
je 0x499164
mov dword [ebp + 0x114], 1
jmp 0x4992a9
push 0
call fcn.004ab060
xor eax, eax
xor bl, bl
cmp byte [0x94d789], 0
pop ecx
jne 0x49917a
inc eax
test al, al
je 0x499189
cmp byte [0x936909], 0
je 0x499189
mov bl, 1
test bl, bl
je 0x49919c
mov dword [ebp + 0x114], 3
jmp 0x4992a9
push 0
call fcn.004ab060
pop ecx
xor eax, eax
xor cl, cl
cmp byte [0x94d78a], 0
jne 0x4991b2
inc eax
test al, al
je 0x4991c1
cmp byte [0x93690a], 0
je 0x4991c1
mov cl, 1
test cl, cl
je 0x4991d4
mov dword [ebp + 0x114], 2
jmp 0x4992a9
push 0
call fcn.004ab060
xor eax, eax
xor dl, dl
cmp byte [0x94d78b], 0
pop ecx
jne 0x4991ea
inc eax
test al, al
je 0x4991f9
cmp byte [0x93690b], 0
je 0x4991f9
mov dl, 1
test dl, dl
je 0x49920c
mov dword [ebp + 0x114], 4
jmp 0x4992a9
push 0
call fcn.004ab060
xor eax, eax
xor bl, bl
cmp byte [0x94d78c], 0
pop ecx
jne 0x499222
inc eax
test al, al
je 0x499231
cmp byte [0x93690c], 0
je 0x499231
mov bl, 1
test bl, bl
je 0x499241
mov dword [ebp + 0x114], 5
jmp 0x4992a9
push 0
call fcn.004ab060
pop ecx
xor eax, eax
xor cl, cl
cmp byte [0x94d78d], 0
jne 0x499257
inc eax
test al, al
je 0x499266
cmp byte [0x93690d], 0
je 0x499266
mov cl, 1
test cl, cl
je 0x499276
mov dword [ebp + 0x114], 6
jmp 0x4992a9
push 0
call fcn.004ab060
xor eax, eax
xor dl, dl
cmp byte [0x94d78e], 0
pop ecx
jne 0x49928c
inc eax
test al, al
je 0x49929b
cmp byte [0x93690e], 0
je 0x49929b
mov dl, 1
test dl, dl
je 0x4992a9
mov dword [ebp + 0x114], 7
mov ecx, 0x9b491c
call fcn.0061a0c0
mov dword [ebp + 0x118], eax
mov ecx, dword [ebp + 0x118]
test ecx, ecx
je 0x4992cb
mov dword [esp + 0xc], 3
mov edi, dword [ebp + 0x114]
test edi, edi
je 0x4992dd
mov dword [esp + 0xc], 2
mov eax, dword [ebp + 0x78]
mov esi, dword [eax]
cmp esi, 0x420
je 0x4992f2
mov dword [esp + 0xc], 0
cmp byte [ebp + 0x158], 0
je 0x499355
cmp byte [ebp + 0x14a], 0
je 0x499331
xor esi, esi
jmp 0x49931a
mov ecx, 0x9b491c
push esi
push dword [ebp + 0x14c]
call fcn.00616ad0
inc esi
cmp esi, 4
jl 0x499308
xor al, al
mov byte [ebp + 0x158], al
xor al, al
mov byte [ebp + 0x14a], al
jmp 0x49936e
cmp esi, 0x420
jne 0x499341
test edi, edi
jne 0x499341
test ecx, ecx
je 0x49934c
mov ecx, ebp
push dword [esp + 0xc]
call fcn.004904c0
mov byte [ebp + 0x159], 1
jmp 0x49936e
xor eax, eax
mov dword [ebp + 0x78], eax
xor al, al
mov byte [ebp + 0x149], al
or dword [ebp + 0x14], 0xffffffff
xor al, al
mov byte [ebp + 0x148], al
cmp dword [ebp + 0x70], 0
jne 0x49a012
cmp dword [ebp + 0x78], 0
je 0x499383
jmp 0x49a012
cmp byte [esp + 0x74], 0
mov ebx, dword [ebp + 0x30]
je 0x4993fa
cmp dword [ebp + 0xf8], 6
je 0x4993a7
mov ecx, 0xa10b8a
push 0
push 0xc3
call fcn.005f9960
inc dword [ebp + 0x30]
mov edi, dword [ebp + 0x30]
cmp edi, 0xc
je 0x4993cb
mov eax, dword [ebp + 0xf8]
lea edi, [edi + edi*8]
imul eax, eax, 0x71
add eax, edi
cmp word [eax*2 + 0x6d8b7a], 0
jne 0x4993ed
mov eax, dword [ebp + 0xf8]
imul eax, eax, 0x71
cmp word [eax*2 + 0x6d8b7a], 1
je 0x4993e6
xor eax, eax
mov dword [ebp + 0x30], eax
jmp 0x4993ed
mov dword [ebp + 0x30], 1
cmp ebx, dword [ebp + 0x30]
je 0x4993fa
xor eax, eax
mov dword [ebp + 0x10c], eax
cmp byte [esp + 0x78], 0
je 0x499471
cmp dword [ebp + 0xf8], 6
je 0x49941b
mov ecx, 0xa10b8a
push 0
push 0xc3
call fcn.005f9960
mov eax, dword [ebp + 0xf8]
imul eax, eax, 0x71
cmp word [eax*2 + 0x6d8b7a], 1
je 0x499433
xor eax, eax
jmp 0x499436
xor eax, eax
inc eax
cmp dword [ebp + 0x30], eax
jle 0x499443
dec dword [ebp + 0x30]
jmp 0x499464
inc dword [ebp + 0x30]
mov ecx, dword [ebp + 0x30]
cmp ecx, 0xb
je 0x499464
mov eax, dword [ebp + 0xf8]
lea ecx, [ecx + ecx*8]
imul eax, eax, 0x71
add eax, ecx
cmp word [eax*2 + 0x6d8b8c], 0
jne 0x499440
cmp ebx, dword [ebp + 0x30]
je 0x499471
xor eax, eax
mov dword [ebp + 0x10c], eax
cmp byte [esp + 0x7c], 0
je 0x499d0b
cmp dword [ebp + 0x108], 0xff
jne 0x499d0b
mov ecx, dword [ebp + 0xf8]
mov esi, dword [ebp + 0x30]
mov eax, ecx
lea esi, [esi + esi*8]
imul eax, eax, 0x71
add eax, esi
cmp byte [eax*2 + 0x6d8b85], 7
jne 0x499514
cmp byte [ebp + 0x6c], 0
je 0x499514
mov ecx, 0xa10b8a
call fcn.005f9d80
mov ecx, 0xa10b8a
call fcn.005f9e50
mov ecx, 0xa10b8a
mov byte [ebp + 0x11], 1
push 0
mov byte [ebp + 0x39], 1
call fcn.005f9cc0
mov ecx, 0xa10b8a
push 0
call fcn.005f9c90
xor eax, eax
jmp 0x4994f3
mov dword [eax*4 + 0x862460], 0
inc eax
cmp eax, 0xa
jl 0x4994e7
mov ecx, ebp
call fcn.00498e5f
mov ecx, 0xa10b8a
push dword [0x974b2c]
call fcn.005f98d0
jmp 0x499631
mov eax, ecx
mov edx, ecx
sub eax, 0x15
je 0x499526
sub eax, 9
jne 0x499631
movzx eax, byte [ebp + 0x15a]
sub eax, 9
je 0x4995e7
sub eax, 0xa
je 0x499545
sub eax, 2
je 0x4995a7
jmp 0x4995e7
cmp ecx, 0x1e
jne 0x49955e
mov byte [ebp + 0x149], 1
mov byte [ebp + 0x148], 1
lea eax, [ebp + 0x14]
mov dword [ebp + 0x78], eax
cmp dword [ebp + 0xf8], 0x15
jne 0x49959b
lea eax, [ebp + 0x15b]
lea edi, [ebp + 0x25b]
push edi
push eax
call fcn.00642560
lea eax, [ebp + 0x15b]
pop ecx
pop ecx
push eax
mov ecx, 0x94ad28
call fcn.004bbb70
mov ecx, ebp
mov byte [ebp + 0x15a], 9
call fcn.00490230
mov dword [ebp + 0x13c], 0x24
jmp 0x4995ef
mov dword [ebp + 0x13c], 0x24
lea ecx, [ebp + 0x25b]
lea eax, [ebp + 0x15b]
push ecx
push eax
call fcn.00642560
lea eax, [ebp + 0x15b]
pop ecx
pop ecx
push eax
mov ecx, 0x94ad28
call fcn.004bbb70
mov ecx, ebp
mov byte [ebp + 0x15a], 9
call fcn.00490230
jmp 0x4995ef
mov byte [esp + 0x80], 1
cmp dword [ebp + 0x678], 0
jle 0x499631
mov eax, dword [ebp + 0x664]
mov dword [ebp + 0x668], eax
lea esi, [ebp + 0x25b]
lea eax, [ebp + 0x15b]
push esi
push eax
call fcn.00642560
lea eax, [ebp + 0x15b]
pop ecx
pop ecx
push eax
mov ecx, 0x94ad28
call fcn.004bbb70
mov ecx, ebp
call fcn.00490230
mov esi, dword [ebp + 0xf8]
mov edx, dword [ebp + 0x30]
mov ecx, esi
mov eax, edx
imul ecx, ecx, 0xe2
lea eax, [eax + eax*8]
add eax, eax
lea edi, [eax + ecx]
movsx ebx, word [edi + 0x6d8b7a]
sub ebx, 2
cmp ebx, 2
jbe 0x499739
sub ebx, 0xd
je 0x499c92
sub ebx, 1
je 0x499ad7
sub ebx, 1
je 0x499ade
sub ebx, 1
je 0x499ae7
sub ebx, 1
je 0x499af0
sub ebx, 1
je 0x499af9
sub ebx, 2
je 0x499b10
sub ebx, 1
je 0x499b9f
sub ebx, 1
je 0x499c08
sub ebx, 3
je 0x49992f
sub ebx, 1
je 0x499b77
sub ebx, 4
je 0x499c9d
sub ebx, 2
je 0x499748
sub ebx, 1
je 0x499912
sub ebx, 1
je 0x499c11
sub ebx, 4
je 0x499c34
sub ebx, 1
je 0x499c08
sub ebx, 1
je 0x499c42
sub ebx, 1
je 0x4999be
sub ebx, 1
je 0x499963
sub ebx, 1
je 0x499c6e
sub ebx, 1
je 0x4998fa
sub ebx, 1
je 0x499755
sub ebx, 1
je 0x499c4d
jmp 0x499cb2
add ecx, eax
movsx eax, byte [ecx + 0x6d8b85]
push eax
jmp 0x499c44
mov byte [esp + 0x80], 1
jmp 0x499cb2
mov eax, esi
sub esi, 3
je 0x499773
sub esi, 1
je 0x4997f7
sub esi, 0x16
je 0x499848
jmp 0x4998e1
mov ecx, 0xa10b8a
call fcn.005f9c10
mov byte [ebp + 0x26], al
mov al, byte [ebp + 0x26]
mov ecx, 0xa10b8a
push eax
call fcn.005f9bf0
xor al, al
mov byte [ebp + 0x29], 0x31
mov byte [ebp + 0x2a], 0x31
mov byte [ebp + 0x5a], al
xor al, al
mov byte [ebp + 0x2b], 7
mov byte [ebp + 0x2c], 1
mov byte [ebp + 0x27], al
mov al, byte [ebp + 0x5a]
mov ecx, 0xa10b8a
push eax
call fcn.005f9cf0
mov al, byte [ebp + 0x2a]
mov ecx, 0xa10b8a
push eax
call fcn.005f9d20
mov al, byte [ebp + 0x29]
mov ecx, 0xa10b8a
push eax
call fcn.005f9d50
movsx eax, byte [ebp + 0x2b]
mov ecx, 0xa10b8a
push eax
call fcn.005f9730
movsx eax, byte [ebp + 0x2b]
mov ecx, 0xa10b8a
push 1
push eax
call fcn.005f9910
jmp 0x4998da
xor al, al
mov dword [ebp + 0x18], 0x100
mov dword [ebp + 0x1c], 0x3f99999a
fld dword [ebp + 0x1c]
fstp dword [0x690220]
mov byte [ebp + 0x20], al
xor al, al
mov byte [ebp + 0x22], al
xor eax, eax
mov byte [ebp + 0x21], 1
mov byte [ebp + 0x24], 1
mov byte [ebp + 0x25], 1
mov dword [ebp + 0xc], eax
mov byte [ebp + 0xa], 1
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x60], eax
cmp dword [0x7f3c60], 1
jne 0x49983c
xor al, al
mov byte [0x697d54], al
jmp 0x4998da
mov ecx, 0x9b491c
call fcn.0061a0f0
mov ecx, 0x9b491c
call fcn.00619b80
lea eax, [esp + 0x48]
mov ecx, 0xa10a4c
push eax
call fcn.004ada20
lea eax, [esp + 0x48]
mov ecx, 0x9b491c
push eax
call fcn.00619ae0
cmp byte [0x938624], 0
je 0x4998af
mov edx, dword [0x9b48f4]
mov dword [esp + 0x1c], 0x2c
lea eax, [esp + 0x1c]
push eax
mov eax, dword [edx + 0x20]
mov edi, dword [eax]
push dword [edx + 0x20]
call dword [edi + 0xc]
mov ecx, 0x9b491c
push dword [esp + 0x2c]
call fcn.006197f0
xor al, al
mov byte [0xa10a4d], 1
mov byte [0x7e46f7], al
xor al, al
mov dword [0x94dbd0], 0x3b23d70a
mov byte [0x69c610], 1
mov byte [ebp + 0x5b], al
mov byte [0xa10b4c], 1
mov ecx, ebp
call fcn.00490230
mov dword [ebp + 0x35c], 2
mov dword [ebp + 0x120], 0x12c
jmp 0x499cb2
call fcn.00627d10
mov ecx, ebp
push 0x15
call fcn.004983ef
xor al, al
mov byte [ebp + 0x684], al
jmp 0x499923
mov ecx, ebp
push 0x1e
call fcn.004983ef
xor eax, eax
mov dword [ebp + 0x680], eax
mov byte [ebp + 0x15a], 0x13
jmp 0x499cb2
cmp byte [ebp + 0x26], 0xfd
je 0x499cb2
mov ecx, ebp
push 3
call fcn.004983ef
movsx eax, byte [ebp + 0x2b]
mov ecx, 0xa10b8a
push 1
push eax
call fcn.005f9910
push 0x68d544
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x499cb2
mov al, byte [ebp + 0x26]
cmp al, 0xfd
je 0x499cb2
cmp al, 0xff
jne 0x49997f
mov ecx, 0xa10b8a
call fcn.005f9c10
mov byte [ebp + 0x26], al
mov bl, byte [ebp + 0x26]
mov ecx, 0xa10b8a
movsx eax, bl
push ebx
mov dword [esp + 8], eax
call fcn.005f9bf0
mov byte [ebp + 0x26], al
movsx eax, byte [ebp + 0x26]
cmp dword [esp + 4], eax
je 0x499cab
mov dword [ebp + 0x35c], 5
mov dword [ebp + 0x120], 0x12c
jmp 0x499cab
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x5c]
je 0x499cb2
mov dword [ebp + 0x5c], eax
push dword [ebp + 0x5c]
call fcn.00601770
pop ecx
mov ecx, 0xa10b8a
push 0
call fcn.005f98b0
mov ecx, 0xa10b8a
call fcn.005f9e50
fldz
fild dword [0x9b48e0]
fmul dword [0x68d078]
fstp st(1)
fild dword [0x9b48dc]
fmul dword [0x68d078]
fcomp dword [0x68d07c]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x49a00b
fld dword [0x68d07c]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x49a00b
mov ecx, dword [0x9b48e4]
mov eax, dword [0x9b48e8]
cmp ecx, 0x80000000
sbb ecx, 0xffffffff
sar ecx, 1
cmp eax, 0x80000000
sbb eax, 0xffffffff
mov dword [esp + 0x58], ecx
sar eax, 1
lea esi, [esp + 0x58]
mov dword [esp + 0x5c], eax
mov eax, dword [0x9b48f4]
push esi
push dword [eax]
fstp st(0)
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov edx, dword [0x9b48e8]
mov eax, dword [0x9b48e4]
cmp edx, 0x80000000
sbb edx, 0xffffffff
sar edx, 1
cmp eax, 0x80000000
sbb eax, 0xffffffff
sar eax, 1
mov dword [esp + 0x10], eax
mov eax, dword [0x9b48f4]
fild dword [esp + 0x10]
fstp dword [eax + 0xc]
mov dword [esp + 0x10], edx
mov eax, dword [0x9b48f4]
fild dword [esp + 0x10]
fstp dword [eax + 0x10]
xor eax, eax
mov byte [ebp + 0x140], 1
mov dword [ebp + 0x30], 5
mov dword [ebp + 0x10c], eax
jmp 0x499cab
xor eax, eax
mov dword [ebp + 0x50], eax
jmp 0x499b00
mov dword [ebp + 0x50], 1
jmp 0x499b00
mov dword [ebp + 0x50], 2
jmp 0x499b00
mov dword [ebp + 0x50], 3
jmp 0x499b00
mov dword [ebp + 0x50], 4
mov ecx, ebp
mov byte [ebp + 0x6e], 1
call fcn.004a3882
jmp 0x499cab
lea edi, [eax + ecx]
mov al, byte [edi + 0x6d8b84]
cmp al, 2
jl 0x499cb2
cmp al, 9
jg 0x499cb2
mov dword [ebp + 0x100], edx
mov eax, dword [ebp + 0x100]
mov ecx, dword [eax*4 + 0x811720]
cmp ecx, 1
je 0x499cb2
cmp ecx, 2
je 0x499cb2
mov eax, dword [ebp + 0xf8]
mov edx, dword [ebp + 0xf8]
sub eax, 8
je 0x499b69
sub eax, 1
je 0x499b70
jmp 0x499cb2
push 0xa
jmp 0x499c44
push 0xb
jmp 0x499c44
lea ebx, [eax + ecx]
mov cl, byte [ebx + 0x6d8b84]
cmp cl, 2
jl 0x499cb2
cmp cl, 9
jg 0x499cb2
mov dword [ebp + 0x100], edx
push 0x10
jmp 0x499c44
mov ecx, 0xa10b8a
call fcn.005f9d80
mov ecx, 0xa10b8a
call fcn.005f9e50
mov ecx, 0xa10b8a
mov byte [ebp + 0x11], 1
push 0
mov byte [ebp + 0x39], 1
call fcn.005f9cc0
mov ecx, 0xa10b8a
push 0
call fcn.005f9c90
xor eax, eax
jmp 0x499be3
mov dword [eax*4 + 0x862460], 0
inc eax
cmp eax, 0xa
jl 0x499bd7
mov ecx, ebp
call fcn.00498e5f
mov ecx, 0xa10b8a
push dword [0x974b2c]
call fcn.005f98d0
jmp 0x499cb2
mov byte [ebp + 0x11], 1
jmp 0x499cb2
mov dword [ebp + 0x14c], edx
mov byte [ebp + 0x158], 1
mov byte [ebp + 0x149], 1
mov byte [ebp + 0x148], 1
lea eax, [ebp + 0x14]
mov dword [ebp + 0x78], eax
jmp 0x499cb2
mov ecx, 0xa10b8a
call fcn.005f9e50
push 0x22
jmp 0x499c44
push 0xfffffffffffffffe
mov ecx, ebp
call fcn.004983ef
jmp 0x499cb2
cmp byte [ebp + 0x5b], 1
jne 0x499c61
xor al, al
mov byte [ebp + 0x5b], al
mov byte [0xa10b4c], 1
jmp 0x499cab
xor al, al
mov byte [ebp + 0x5b], 1
mov byte [0xa10b4c], al
jmp 0x499cab
cmp byte [ebp + 0x26], 0xfd
je 0x499cb2
dec byte [ebp + 0x27]
cmp byte [ebp + 0x27], 0
jge 0x499c81
mov byte [ebp + 0x27], 2
movsx eax, byte [ebp + 0x27]
mov ecx, 0xa10b8a
push eax
call fcn.005f9bd0
jmp 0x499cab
mov ecx, ebp
push 1
call fcn.004982d3
jmp 0x499cb2
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 2
jle 0x499cab
xor eax, eax
mov dword [ebp + 0xc], eax
mov ecx, ebp
call fcn.00490230
mov ecx, ebp
call fcn.00498cdd
cmp byte [esp + 0x80], 0
jne 0x499d0b
mov eax, dword [ebp + 0xf8]
mov edx, dword [ebp + 0x30]
imul eax, eax, 0x71
mov ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov bl, byte [eax*2 + 0x6d8b84]
cmp bl, 2
jl 0x499cfa
cmp bl, 9
jg 0x499cfa
cmp dword [edx*4 + 0x811720], 0
je 0x499cfa
push 0
push 0xc6
jmp 0x499d01
push 0
push 0xc4
mov ecx, 0xa10b8a
call fcn.005f9960
cmp byte [esp + 0x80], 0
je 0x499d6a
cmp byte [ebp + 0x11d], 0
je 0x499d52
mov ecx, 0xa10b8a
push 0
push 0xc5
call fcn.005f9960
mov ecx, ebp
push 0xfffffffffffffffe
call fcn.004983ef
mov eax, dword [ebp + 0xfc]
cmp eax, 0x15
je 0x499d48
cmp eax, 0x1e
jne 0x499d6a
xor eax, eax
mov dword [ebp + 0x674], eax
jmp 0x499d6a
mov ecx, 0xa10b8a
push 0
push 0xc6
call fcn.005f9960
mov byte [ebp + 0x11e], 1
cmp byte [esp + 0x84], 0
je 0x49a012
mov edi, dword [ebp + 0xf8]
mov esi, dword [ebp + 0x30]
imul edi, edi, 0x71
lea esi, [esi + esi*8]
add edi, esi
movsx eax, word [edi*2 + 0x6d8b7a]
sub eax, 0xf
je 0x499dbc
sub eax, 0x11
je 0x499dd0
sub eax, 0xb
je 0x499f53
sub eax, 1
je 0x499e23
sub eax, 1
je 0x499f12
sub eax, 3
je 0x499dfc
jmp 0x499fcc
mov al, byte [esp + 0x84]
mov ecx, ebp
push eax
call fcn.004982d3
jmp 0x499fcc
movsx eax, byte [esp + 0x84]
add dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0
jge 0x499de8
mov dword [ebp + 0xc], 2
cmp dword [ebp + 0xc], 2
jle 0x499f4a
xor eax, eax
mov dword [ebp + 0xc], eax
jmp 0x499f4a
cmp byte [ebp + 0x5b], 1
jne 0x499e13
xor al, al
mov byte [ebp + 0x5b], al
mov byte [0xa10b4c], 1
jmp 0x499f4a
xor al, al
mov byte [ebp + 0x5b], 1
mov byte [0xa10b4c], al
jmp 0x499f4a
cmp byte [ebp + 0x26], 0xfd
je 0x499fcc
mov al, byte [esp + 0x84]
add byte [ebp + 0x26], al
jmp 0x499f03
xor bl, bl
cmp byte [ebp + 0x26], 0xff
jge 0x499e53
mov ecx, 0xa10b8a
call fcn.005f9c70
dec al
mov byte [ebp + 0x26], al
mov ecx, 0xa10b8a
call fcn.005f9c70
movzx edx, al
movsx eax, byte [ebp + 0x26]
dec edx
cmp eax, edx
jle 0x499e6d
mov byte [ebp + 0x26], 0xff
mov al, byte [ebp + 0x26]
cmp al, 0xff
je 0x499f05
mov ecx, 0xa10b8a
push eax
call fcn.005f9c50
push eax
mov dword [esp + 0xc], eax
call fcn.006424c0
mov esi, eax
pop ecx
mov ecx, 0x1f
mov edi, str.MILES_FAST_2D_POSITIONAL_AUDIO
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub ecx, eax
test ecx, ecx
je 0x499ef6
push dword [esp + 8]
call fcn.006424c0
mov esi, eax
pop ecx
mov ecx, 0x14
mov edi, str.AUREAL_A3D_2.0__TM_
repe cmpsb byte [esi], byte es:[edi]
movzx edx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub edx, eax
test edx, edx
je 0x499ef6
push dword [esp + 8]
call fcn.006424c0
mov esi, eax
pop ecx
mov ecx, 0x1c
mov edi, str.AUREAL_A3D_INTERACTIVE__TM_
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub ecx, eax
test ecx, ecx
jne 0x499f05
movsx eax, byte [esp + 0x84]
neg eax
sub byte [ebp + 0x26], al
mov bl, 1
test bl, bl
jne 0x499e3c
jmp 0x499fcc
cmp byte [ebp + 0x26], 0xfd
je 0x499fcc
mov al, byte [esp + 0x84]
sub byte [ebp + 0x27], al
cmp byte [ebp + 0x27], 0
jge 0x499f30
mov byte [ebp + 0x27], 2
cmp byte [ebp + 0x27], 2
jle 0x499f3b
xor al, al
mov byte [ebp + 0x27], al
movsx eax, byte [ebp + 0x27]
mov ecx, 0xa10b8a
push eax
call fcn.005f9bd0
mov ecx, ebp
call fcn.00490230
jmp 0x499fcc
cmp byte [ebp + 0x6c], 0
je 0x499fcc
call fcn.00601880
cmp byte [esp + 0x84], 0
mov esi, eax
jle 0x499f9d
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp dword [esi + eax*4], 0
je 0x499f6a
call fcn.006019c0
cmp dword [ebp + 0x60], eax
jl 0x499fcc
xor eax, eax
mov dword [ebp + 0x60], eax
jmp 0x499f8e
inc dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp dword [esi + eax*4], 0
je 0x499f8b
jmp 0x499fcc
dec dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp dword [esi + eax*4], 0
je 0x499f9d
test eax, eax
jge 0x499fcc
call fcn.006019c0
dec eax
mov dword [ebp + 0x60], eax
jmp 0x499fbf
dec dword [ebp + 0x60]
mov eax, dword [ebp + 0x60]
cmp dword [esi + eax*4], 0
je 0x499fbc
mov al, byte [esp + 0x84]
mov ecx, ebp
push eax
call fcn.00498a1b
mov ecx, ebp
call fcn.00498cdd
cmp dword [ebp + 0xf8], 0x1e
jne 0x49a012
cmp byte [esp + 0x84], 0
jle 0x49a001
mov dword [ebp + 0x154], 0x10
jmp 0x49a012
xor eax, eax
mov dword [ebp + 0x154], eax
jmp 0x49a012
fstp st(0)
jmp 0x499abc
add esp, 0x60
pop ebp
pop edi
pop esi
pop ebx
ret 0x14