Function at 0x444a50
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x552064]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x5570f8]
mov edx, dword [0x5570fc]
push ebx
push esi
mov esi, dword [0x5570f4]
push edi
cmp ecx, edx
jb 0x444a7d
xor bl, bl
jmp 0x444a87
mov bl, byte [esi + ecx]
inc ecx
mov dword [0x5570f8], ecx
movzx eax, bl
dec eax
cmp eax, 0x4d
ja case.0x444a9b.7
movzx eax, byte [eax + 0x4467d8]
jmp dword [eax*4 + 0x44674c]
cmp ecx, edx
jb 0x444ac1
xor eax, eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + ecx]
inc ecx
mov dword [0x5570f8], ecx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
cmp eax, edx
jb 0x444b10
xor eax, eax
add ecx, 2
mov dword [0x557100], eax
mov dword [0x5570f8], ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + ecx]
add ecx, 2
mov dword [0x557100], eax
mov dword [0x5570f8], ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 3]
cmp eax, edx
jb 0x444b61
xor eax, eax
add ecx, 4
mov dword [0x557100], eax
mov dword [0x5570f8], ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + ecx]
add ecx, 4
mov dword [0x557100], eax
mov dword [0x5570f8], ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
test eax, eax
je 0x444bc0
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, eax
jbe 0x444bc0
mov eax, dword [edx + eax*4]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
test eax, eax
je 0x444c15
mov ecx, dword [0x5645cc]
mov edx, dword [0x5645c8]
sub ecx, edx
cmp ecx, eax
jbe 0x444c15
mov al, byte [eax + edx]
movzx eax, al
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor al, al
movzx eax, al
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
test eax, eax
je 0x444bc0
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, eax
jbe 0x444bc0
mov eax, dword [edx + eax*4]
test eax, eax
je 0x444bc0
cmp ecx, eax
jbe 0x444bc0
mov eax, dword [edx + eax*4]
jmp 0x444bc2
call fcn.00444a50
test eax, eax
je 0x444c15
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, eax
jbe 0x444c15
mov ecx, dword [edx + eax*4]
test ecx, ecx
je 0x444c15
mov eax, dword [0x5645cc]
mov edx, dword [0x5645c8]
sub eax, edx
cmp eax, ecx
jbe 0x444c15
mov al, byte [ecx + edx]
jmp 0x444c17
cmp ecx, edx
jae case.0x444a9b.7
movzx ebx, byte [esi + ecx]
inc ecx
mov dword [0x5570f8], ecx
test bl, bl
jns 0x444cdc
lea eax, [ecx + 3]
cmp eax, edx
jb 0x444cd0
xor ebx, ebx
jmp 0x444cd3
mov ebx, dword [esi + ecx]
add ecx, 4
mov dword [0x5570f8], ecx
test ebx, ebx
jle case.0x444a9b.7
call fcn.00444a50
sub ebx, 1
jne 0x444ce0
mov dword [0x557100], 0
xor eax, eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
neg eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
neg eax
sbb eax, eax
inc eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
not eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp ecx, edx
jb 0x444d75
xor al, al
jmp 0x444d7f
mov al, byte [esi + ecx]
inc ecx
mov dword [0x5570f8], ecx
movzx eax, al
add eax, 0xfffffff8
cmp eax, 6
ja case.0x444d8e.10
jmp dword [eax*4 + 0x446828]
call fcn.00444a50
mov ecx, dword [0x557100]
mov esi, eax
mov dword [ebp - 0x1c], ecx
cmp esi, ecx
jne 0x444dd4
call fcn.00444a50
push eax
mov edx, esi
mov cl, bl
call fcn.00444450
add esp, 4
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
jle 0x444ddd
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ecx, eax
mov eax, dword [0x5570f8]
sub ecx, esi
mov dword [ebp - 0x20], ecx
lea edi, [ecx + 1]
mov ecx, dword [0x5570fc]
cmp eax, ecx
jae 0x444fd2
mov edx, dword [0x5570f4]
mov bh, byte [edx + eax]
cmp bh, 8
je 0x444ee9
cmp bh, 0x13
jne 0x444fd2
inc eax
mov dword [0x5570f8], eax
cmp eax, ecx
jb 0x444e21
xor ecx, ecx
jmp 0x444e55
movzx ecx, byte [edx + eax]
lea edx, [eax + 1]
mov dword [ebp - 0x24], ecx
mov dword [0x5570f8], edx
test cl, cl
jns 0x444e58
lea eax, [edx + 3]
cmp eax, dword [0x5570fc]
jb 0x444e44
xor ecx, ecx
jmp 0x444e4d
mov ecx, dword [0x5570f4]
mov ecx, dword [ecx + edx]
lea eax, [edx + 4]
mov dword [0x5570f8], eax
mov dword [ebp - 0x24], ecx
cmp edi, ecx
mov eax, ecx
cmovl eax, edi
xor edx, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
test eax, eax
jle 0x444e97
sub edi, eax
sub ecx, eax
mov dword [ebp - 0xc], edi
mov edi, eax
mov dword [ebp - 0x24], ecx
call fcn.00444a50
mov edx, esi
mov cl, bl
push eax
inc esi
call fcn.00444450
add esp, 4
mov edx, eax
mov dword [ebp - 0x20], edx
sub edi, 1
jne 0x444e77
mov edi, dword [ebp - 0xc]
test edi, edi
jle 0x444eb9
nop dword [eax + eax]
mov edx, esi
mov cl, bl
push 0
inc esi
call fcn.00444450
add esp, 4
mov edx, eax
mov dword [ebp - 0x20], edx
sub edi, 1
jne 0x444ea0
mov ebx, dword [ebp - 0x24]
test ebx, ebx
jle 0x444ecd
call fcn.00444a50
sub ebx, 1
jne 0x444ec0
mov edx, dword [ebp - 0x20]
mov dword [0x557100], edx
mov eax, edx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea edx, [eax + 1]
mov dword [ebp - 0xc], edx
cmp edx, ecx
mov edx, dword [0x5570f4]
jae 0x444fd2
cmp byte [edx + eax + 1], 0x42
jne 0x444fd2
mov eax, dword [ebp - 0xc]
mov dword [0x5570f8], eax
call fcn.00444a50
mov edx, eax
mov eax, dword [0x557100]
cmp edx, eax
jle 0x444f28
mov eax, edx
mov edx, dword [0x557100]
sub eax, edx
xor ecx, ecx
mov dword [ebp - 0xc], eax
inc eax
cmp eax, edi
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x20]
cmovle eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x20], eax
test eax, eax
jle 0x444f96
sub edx, esi
mov dword [ebp - 0x24], edx
nop dword [eax]
lea ecx, [edx + esi]
mov dword [ebp - 0xc], esi
inc esi
test ecx, ecx
je 0x444f74
mov eax, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x444f74
mov eax, dword [edx + ecx*4]
jmp 0x444f76
xor eax, eax
mov edx, dword [ebp - 0xc]
mov cl, bl
push eax
call fcn.00444450
mov edx, dword [ebp - 0x24]
mov ecx, eax
mov eax, dword [ebp - 0x1c]
add esp, 4
inc eax
dec edi
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x20]
jl 0x444f50
test edi, edi
jle 0x444fb6
nop word [eax + eax]
mov edx, esi
mov cl, bl
push 0
inc esi
call fcn.00444450
add esp, 4
mov ecx, eax
sub edi, 1
jne 0x444fa0
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, dword [ebp - 0x1c]
mov edx, eax
inc edi
mov dword [ebp - 0xc], edx
xor eax, eax
cmp esi, edi
jge 0x444acc
nop word [eax + eax]
push edx
mov edx, esi
mov cl, bl
call fcn.00444450
mov edx, dword [ebp - 0xc]
inc esi
add esp, 4
cmp esi, edi
jl 0x444ff0
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
test esi, esi
je 0x445048
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, esi
jbe 0x445048
mov edx, dword [edx + esi*4]
jmp 0x44504a
xor edx, edx
push eax
mov cl, bl
call fcn.00444450
add esp, 4
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov ecx, dword [0x557100]
mov esi, eax
mov dword [ebp - 0x1c], ecx
cmp esi, ecx
jne 0x4450ad
call fcn.00444a50
push eax
mov edx, esi
mov cl, bl
call fcn.004447e0
add esp, 4
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
jle 0x4450b6
mov esi, ecx
mov dword [ebp - 0x1c], eax
mov ecx, eax
mov eax, dword [0x5570f8]
mov edi, ecx
mov ecx, dword [0x5570fc]
sub edi, esi
inc edi
cmp eax, ecx
jae 0x445292
mov edx, dword [0x5570f4]
mov bh, byte [edx + eax]
cmp bh, 9
je 0x4451c1
cmp bh, 0x13
jne 0x445292
inc eax
mov dword [0x5570f8], eax
cmp eax, ecx
jb 0x4450f7
xor ecx, ecx
jmp 0x44512b
movzx ecx, byte [edx + eax]
lea edx, [eax + 1]
mov dword [ebp - 0x24], ecx
mov dword [0x5570f8], edx
test cl, cl
jns 0x44512e
lea eax, [edx + 3]
cmp eax, dword [0x5570fc]
jb 0x44511a
xor ecx, ecx
jmp 0x445123
mov ecx, dword [0x5570f4]
mov ecx, dword [ecx + edx]
lea eax, [edx + 4]
mov dword [0x5570f8], eax
mov dword [ebp - 0x24], ecx
cmp edi, ecx
mov eax, ecx
cmovl eax, edi
xor edx, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x20], edx
test eax, eax
jle 0x445170
sub edi, eax
sub ecx, eax
mov dword [ebp - 0x1c], edi
mov edi, eax
mov dword [ebp - 0x24], ecx
nop dword [eax]
call fcn.00444a50
mov edx, esi
mov cl, bl
push eax
inc esi
call fcn.004447e0
add esp, 4
mov edx, eax
mov dword [ebp - 0x20], edx
sub edi, 1
jne 0x445150
mov edi, dword [ebp - 0x1c]
test edi, edi
jle 0x44518d
mov edx, esi
mov cl, bl
push 0
inc esi
call fcn.004447e0
add esp, 4
mov edx, eax
mov dword [ebp - 0x20], edx
sub edi, 1
jne 0x445174
mov ebx, dword [ebp - 0x24]
test ebx, ebx
jle 0x444ecd
call fcn.00444a50
sub ebx, 1
jne 0x445198
mov edx, dword [ebp - 0x20]
mov eax, edx
mov dword [0x557100], edx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea edx, [eax + 1]
mov dword [ebp - 0xc], edx
cmp edx, ecx
mov edx, dword [0x5570f4]
jae 0x445292
cmp byte [edx + eax + 1], 0x42
jne 0x445292
mov eax, dword [ebp - 0xc]
mov dword [0x5570f8], eax
call fcn.00444a50
mov ecx, dword [0x557100]
mov edx, eax
cmp edx, ecx
jle 0x4451fd
mov edx, ecx
mov ecx, eax
sub ecx, edx
xor eax, eax
inc ecx
cmp ecx, edi
cmovg ecx, edi
mov dword [ebp - 0x20], ecx
test ecx, ecx
jle 0x44525d
sub edx, esi
sub edi, ecx
mov dword [ebp - 0x1c], edi
mov edi, edx
mov dword [ebp - 0xc], edx
nop word [eax + eax]
lea ecx, [edi + esi]
mov dword [ebp - 0xc], esi
inc esi
test ecx, ecx
je 0x445244
mov eax, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x445244
mov eax, dword [edx + ecx*4]
jmp 0x445246
xor eax, eax
mov edx, dword [ebp - 0xc]
mov cl, bl
push eax
call fcn.004447e0
add esp, 4
sub dword [ebp - 0x20], 1
jne 0x445220
mov edi, dword [ebp - 0x1c]
test edi, edi
jle 0x444acc
mov edx, esi
mov cl, bl
push 0
inc esi
call fcn.004447e0
add esp, 4
sub edi, 1
jne 0x445265
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, dword [ebp - 0x1c]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0xc], ecx
cmp esi, edi
jge 0x444acc
nop dword [eax]
push ecx
mov edx, esi
mov cl, bl
call fcn.004447e0
mov ecx, dword [ebp - 0xc]
inc esi
add esp, 4
cmp esi, edi
jl 0x4452b0
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
test esi, esi
je 0x445308
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, esi
jbe 0x445308
mov edx, dword [edx + esi*4]
jmp 0x44530a
xor edx, edx
push eax
mov cl, bl
call fcn.004447e0
add esp, 4
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cdq
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
add ecx, eax
adc edi, edx
cmp edi, 0xffffffff
jg 0x445376
jl 0x445355
cmp ecx, 0x80000000
ja 0x445376
mov ecx, DirectSoundCreate
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
test edi, edi
jl 0x445389
jg 0x445384
cmp ecx, 0x7fffffff
jb 0x445389
mov ecx, DirectSoundCreate
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cdq
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
sub eax, ecx
sbb edx, edi
cmp edx, 0xffffffff
jg 0x4453e9
jl 0x4453cb
cmp eax, 0x80000000
ja 0x4453e9
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
test edx, edx
jl 0x4453fb
jg 0x4453f6
cmp eax, 0x7fffffff
jb 0x4453fb
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
imul esi
cmp edx, 0xffffffff
jg 0x4453e9
jl 0x4453cb
cmp eax, 0x80000000
ja 0x4453e9
mov eax, DirectSoundCreate
jmp 0x4453fb
call fcn.00444a50
mov edi, eax
call fcn.00444a50
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov eax, ecx
cdq
mov esi, eax
mov eax, edi
push edx
cdq
push esi
push edx
push eax
call fcn.004e6e10
cmp edx, 0xffffffff
jg 0x4453e9
jl 0x4453cb
cmp eax, 0x80000000
ja 0x4453e9
mov eax, DirectSoundCreate
jmp 0x4453fb
call fcn.00444a50
mov edi, eax
call fcn.00444a50
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov eax, ecx
cdq
mov esi, eax
mov eax, edi
push edx
cdq
push esi
push edx
push eax
call fcn.00521980
cmp edx, 0xffffffff
jg 0x4453e9
jl 0x4453cb
cmp eax, 0x80000000
ja 0x4453e9
mov eax, DirectSoundCreate
jmp 0x4453fb
call fcn.00444a50
mov esi, eax
call fcn.00444a50
or eax, esi
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
and eax, esi
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor eax, esi
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov ecx, eax
shl esi, cl
mov dword [0x557100], esi
mov eax, esi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov ecx, eax
shr esi, cl
mov dword [0x557100], esi
mov eax, esi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
sete cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
setge cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
setle cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
setg cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
setl cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
xor ecx, ecx
cmp esi, eax
setne cl
mov dword [0x557100], ecx
mov eax, ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
test eax, eax
je 0x4456de
call fcn.00444360
mov dword [0x557100], 1
mov eax, 1
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
neg eax
sbb eax, eax
neg eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
test eax, eax
jne 0x4456de
call fcn.00444360
jmp case.0x444a9b.7
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov dword [0x557100], eax
mov eax, esi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp ecx, edx
jae case.0x444d8e.10
cmp byte [esi + ecx], 0x13
jne case.0x444d8e.10
inc ecx
mov dword [0x5570f8], ecx
cmp ecx, edx
jae 0x4457e1
movzx ebx, byte [esi + ecx]
lea edi, [ecx + 1]
mov dword [0x5570f8], edi
test bl, bl
jns 0x445784
lea eax, [ecx + 4]
cmp eax, edx
jb 0x445779
xor ebx, ebx
jmp 0x44577c
mov ebx, dword [esi + edi]
lea eax, [ecx + 5]
mov dword [0x5570f8], eax
test ebx, ebx
jle 0x4457e1
lea eax, [ebx*8]
call fcn.004e70b0
mov edi, esp
xor esi, esi
call fcn.00444a50
mov dword [edi + esi*8], eax
mov eax, dword [0x557100]
mov dword [edi + esi*8 + 4], eax
inc esi
cmp esi, ebx
jl 0x445798
call fcn.00444a50
cmp eax, ebx
jae case.0x444a9b.7
mov ecx, dword [edi + eax*8 + 4]
mov eax, dword [edi + eax*8]
mov dword [0x557100], ecx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
call fcn.00444a50
jmp case.0x444a9b.7
call fcn.00444a50
test eax, eax
je 0x44581c
call fcn.00444a50
mov esi, eax
call fcn.00444360
mov dword [0x557100], esi
mov eax, esi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444360
call fcn.00444a50
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp ecx, edx
jb 0x445847
xor bl, bl
jmp 0x445851
mov bl, byte [esi + ecx]
inc ecx
mov dword [0x5570f8], ecx
cmp ecx, edx
jae 0x44586d
lea eax, [esi + ecx]
inc ecx
test byte [eax], 0x80
mov dword [0x5570f8], ecx
je 0x44586d
add ecx, 4
mov dword [0x5570f8], ecx
movzx eax, bl
cmp eax, 0x16
ja case.0x444a9b.7
jmp dword [eax*4 + 0x446844]
call fcn.00444a50
mov ebx, eax
call fcn.00444a50
mov edx, eax
cmp ebx, edx
jle 0x445898
mov ecx, ebx
mov ebx, edx
mov edx, ecx
imul edi, dword [0x563db0], 0x8088405
mov eax, edx
cdq
mov esi, eax
mov ecx, edx
mov eax, ebx
cdq
inc edi
sub esi, eax
mov dword [0x563db0], edi
sbb ecx, edx
add esi, 1
adc ecx, 0
mov eax, ecx
mul edi
mov ecx, eax
mov eax, esi
mul edi
add ecx, edx
mov dword [ebp - 0x10], eax
lea eax, [ecx + ebx]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
sub eax, 0
je 0x445922
sub eax, 1
jne case.0x444a9b.7
mov ecx, esi
call fcn.00472550
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov edx, dword [0x5605f0]
xor ecx, ecx
test edx, edx
jle 0x444bc0
mov edi, dword [0x5605f4]
movzx eax, word [edi + ecx*2]
cmp eax, esi
je 0x44594a
inc ecx
cmp ecx, edx
jl 0x445938
jmp 0x444bc0
mov eax, dword [0x5605f8]
movzx eax, byte [ecx + eax]
jmp 0x444bc2
call fcn.00444a50
push dword [0x5570f0]
mov ecx, dword [0x5570ec]
mov edx, eax
call fcn.00453d40
add esp, 4
mov esi, eax
call fcn.00444a50
cmp eax, 6
ja case.default.0x445983
jmp dword [eax*4 + 0x4468a0]
mov eax, dword [esi + 9]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xd]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x11]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0x16]
and eax, 3
movsx eax, byte [eax + 0x544ac0]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004895a0
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00489670
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp esi, 0x560528
jne 0x445a6b
mov eax, 0x2711
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp esi, 0x5637e0
jne 0x445a91
mov eax, 0x2712
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
cmp esi, 0x563750
jne 0x445ab7
mov eax, 0x2713
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x2714
cmp esi, 0x5636c0
je 0x445ac7
mov eax, dword [esi + 4]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov ecx, esi
mov edi, eax
call fcn.004800c0
mov edx, edi
mov ecx, eax
call fcn.00444260
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov edi, eax
cmp esi, dword [0x5605e8]
jae 0x445b42
mov ecx, dword [0x5605ec]
movzx ecx, word [ecx + esi*2]
call fcn.004800c0
mov esi, eax
test esi, esi
jne 0x445b86
mov ecx, dword [0x56063c]
mov edx, dword [ecx + 4]
test edx, edx
jle 0x445b60
mov eax, dword [ecx + 8]
mov eax, dword [eax + edx*4 - 4]
cmp dword [eax + 4], 0
jl 0x44673e
xor eax, eax
test edx, edx
jle 0x44673e
mov ecx, dword [ecx + 8]
nop dword [eax]
mov esi, dword [ecx]
cmp dword [esi + 4], 0
je 0x445b86
inc eax
add ecx, 4
cmp eax, edx
jge 0x44673e
jmp 0x445b70
mov edx, edi
mov ecx, esi
call fcn.00444260
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
cmp eax, 0xd
ja case.0x444a9b.7
jmp dword [eax*4 + 0x4468bc]
mov eax, dword [0x560600]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x88888889
imul dword [0x560614]
add edx, dword [0x560614]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5605e8]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x564680]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x56061b]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x56061f]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x560623]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x560627]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00495790
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x88888889
imul dword [0x560633]
add edx, dword [0x560633]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x18]
xor edx, edx
mov ecx, 0x3e8
div ecx
movzx eax, word [ebp - 0x16]
imul ecx, edx, 0x64
add ecx, eax
movzx eax, word [ebp - 0x12]
imul ecx, ecx, 0x64
add eax, ecx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x10]
xor edx, edx
mov ecx, 0x3e8
div ecx
movzx eax, word [ebp - 0xe]
imul ecx, edx, 0x64
add ecx, eax
movzx eax, word [ebp - 0xc]
imul ecx, ecx, 0x64
add eax, ecx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5645b4]
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov dword [0x557100], 0x33842
mov eax, 0x33842
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
movd xmm0, esi
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
call fcn.00522540
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
movsd xmm0, qword [0x545630]
add esp, 8
fstp qword [ebp - 0x10]
movsd xmm1, qword [ebp - 0x10]
comisd xmm0, xmm1
jb 0x445e3f
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
comisd xmm1, xmmword [0x545608]
jb 0x445e67
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
sub esp, 8
movsd qword [esp], xmm1
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
xorps xmm1, xmm1
cdq
xor eax, edx
sub eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x445ebb
sqrtsd xmm0, xmm0
jmp 0x445ec0
call fcn.00523260
movsd qword [ebp - 0x10], xmm0
call fcn.00444a50
movsd xmm0, qword [ebp - 0x10]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd xmm1, qword [0x545630]
comisd xmm1, xmm0
jb 0x445ef0
mov eax, DirectSoundCreate
jmp 0x445f19
comisd xmm0, xmmword [0x545608]
jb 0x445f01
mov eax, DirectSoundCreate
jmp 0x445f19
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
test esi, esi
jns 0x445f1f
neg eax
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov edi, eax
call fcn.00444a50
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
test edi, edi
jne 0x445faf
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x545510]
divsd xmm0, qword [0x5455a8]
call fcn.00523090
mulsd xmm0, qword [ebp - 0x10]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, esi
cvtsi2sd xmm1, edi
divsd xmm0, xmm1
mulsd xmm0, qword [0x545510]
divsd xmm0, qword [0x5455a8]
call fcn.00523090
mulsd xmm0, qword [ebp - 0x10]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov edi, eax
call fcn.00444a50
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
test edi, edi
jne 0x446083
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x545510]
divsd xmm0, qword [0x5455a8]
call fcn.00521e10
mulsd xmm0, qword [ebp - 0x10]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, esi
cvtsi2sd xmm1, edi
divsd xmm0, xmm1
mulsd xmm0, qword [0x545510]
divsd xmm0, qword [0x5455a8]
call fcn.00521e10
mulsd xmm0, qword [ebp - 0x10]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov edi, eax
call fcn.00444a50
movd xmm0, esi
mov ebx, eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
fld qword [ebp - 0x10]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x10], xmm0
fld qword [ebp - 0x10]
call fcn.00521de0
movd xmm0, ebx
sub esp, 8
fstp qword [ebp - 0x10]
movsd xmm1, qword [ebp - 0x10]
mulsd xmm1, qword [0x545578]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd qword [esp], xmm1
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cmp esi, eax
cmovl eax, esi
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cmp esi, eax
cmovg eax, esi
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
cdq
xor eax, edx
sub eax, edx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cmp edi, esi
jl 0x444bc0
cmp edi, eax
jg 0x444bc0
mov eax, 1
jmp 0x444bc2
call fcn.00444a50
mov ebx, eax
call fcn.00444a50
mov esi, eax
call fcn.00444a50
mov edi, eax
mov eax, 1
test edi, edi
cmove edi, eax
mov eax, esi
imul ebx
mov esi, eax
mov ecx, edx
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.004e6e10
cmp edx, 0xffffffff
jg 0x4453e9
jl 0x4453cb
cmp eax, 0x80000000
ja 0x4453e9
mov eax, DirectSoundCreate
jmp 0x4453fb
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov esi, eax
call fcn.00444a50
test esi, esi
movd xmm1, edi
mov ecx, 1
cmove esi, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, esi
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [0x545630]
comisd xmm0, xmm1
jb 0x4462cb
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
comisd xmm1, xmmword [0x545608]
jb 0x4462f3
mov eax, DirectSoundCreate
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
sub esp, 8
movsd qword [esp], xmm1
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov esi, eax
call fcn.00444a50
cmp edi, esi
cmovl edi, esi
cmp edi, eax
cmovg edi, eax
mov dword [0x557100], edi
mov eax, edi
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov ebx, eax
call fcn.00444a50
mov esi, eax
call fcn.00444a50
test eax, eax
movd xmm2, esi
mov ecx, 1
movd xmm1, edi
cmove eax, ecx
sub esp, 8
cvtdq2pd xmm2, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
divsd xmm2, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm1
mulsd xmm2, xmm0
addsd xmm2, xmm1
movsd qword [esp], xmm2
call fcn.0050322a
fstp qword [ebp - 0x10]
cvttsd2si eax, qword [ebp - 0x10]
add esp, 8
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov ecx, dword [0x5645d8]
lea ebx, [edi + 1]
mov edx, dword [0x5645d4]
xor esi, esi
test eax, eax
cmovg esi, eax
mov eax, ecx
sub eax, edx
add ebx, esi
sar eax, 2
cmp eax, ebx
ja 0x446428
push ebx
mov ecx, 0x5645d4
call fcn.004519a0
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, edi
ja 0x446445
lea eax, [edi + 1]
mov ecx, 0x5645d4
push eax
call fcn.004519a0
mov edx, dword [0x5645d4]
xor eax, eax
lea edx, [edx + edi*4]
xor ecx, ecx
mov dword [ebp - 0x1c], eax
test esi, esi
jle 0x4464ab
cmp esi, 8
jb 0x4464ab
mov eax, esi
and eax, 0x80000007
jns 0x446466
dec eax
or eax, 0xfffffff8
inc eax
mov edi, esi
xorps xmm1, xmm1
sub edi, eax
xorps xmm2, xmm2
movups xmm0, xmmword [edx + ecx*4]
paddd xmm1, xmm0
movups xmm0, xmmword [edx + ecx*4 + 0x10]
add ecx, 8
paddd xmm2, xmm0
cmp ecx, edi
jl 0x446470
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
mov dword [ebp - 0x1c], eax
xor edi, edi
xor ebx, ebx
cmp ecx, esi
jge 0x446503
mov eax, esi
sub eax, ecx
cmp eax, 2
jl 0x4464d7
lea eax, [esi - 1]
mov dword [ebp - 0xc], eax
add edi, dword [edx + ecx*4]
add ebx, dword [edx + ecx*4 + 4]
add ecx, 2
mov eax, ecx
cmp ecx, dword [ebp - 0xc]
jl 0x4464c2
cmp eax, esi
jge 0x4464fb
mov eax, dword [ebp - 0x1c]
add eax, dword [edx + ecx*4]
lea ecx, [edi + ebx]
add eax, ecx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x1c]
lea ecx, [edi + ebx]
add eax, ecx
mov dword [0x557100], eax
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov ecx, dword [0x5645d8]
lea ebx, [edi + 1]
mov edx, dword [0x5645d4]
mov esi, 1
cmp eax, esi
cmovg esi, eax
mov eax, ecx
sub eax, edx
add ebx, esi
sar eax, 2
cmp eax, ebx
ja 0x446565
push ebx
mov ecx, 0x5645d4
call fcn.004519a0
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, edi
ja 0x446582
lea eax, [edi + 1]
mov ecx, 0x5645d4
push eax
call fcn.004519a0
mov edx, dword [0x5645d4]
xor ecx, ecx
lea edi, [edx + edi*4]
mov edx, DirectSoundCreate
test esi, esi
jle 0x444ecd
cmp esi, 8
jb 0x446605
cmp dword [0x555fd4], 2
jl 0x446605
mov eax, esi
and eax, 0x80000007
jns 0x4465b0
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x545950]
mov edx, esi
sub edx, eax
movaps xmm2, xmm1
nop
movups xmm0, xmmword [edi + ecx*4]
pminsd xmm1, xmm0
movups xmm0, xmmword [edi + ecx*4 + 0x10]
add ecx, 8
pminsd xmm2, xmm0
cmp ecx, edx
jl 0x4465c0
pminsd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
pminsd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
pminsd xmm1, xmm0
movd edx, xmm1
cmp ecx, esi
jge 0x444ecd
mov eax, dword [edi + ecx*4]
cmp edx, eax
cmovle eax, edx
inc ecx
mov edx, eax
cmp ecx, esi
jl 0x446605
mov dword [0x557100], edx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
call fcn.00444a50
mov edi, eax
call fcn.00444a50
mov ecx, dword [0x5645d8]
lea ebx, [edi + 1]
mov edx, dword [0x5645d4]
mov esi, 1
cmp eax, esi
cmovg esi, eax
mov eax, ecx
sub eax, edx
add ebx, esi
sar eax, 2
cmp eax, ebx
ja 0x446677
push ebx
mov ecx, 0x5645d4
call fcn.004519a0
mov ecx, dword [0x5645d8]
mov edx, dword [0x5645d4]
sub ecx, edx
sar ecx, 2
cmp ecx, edi
ja 0x446694
lea eax, [edi + 1]
mov ecx, 0x5645d4
push eax
call fcn.004519a0
mov edx, dword [0x5645d4]
lea edi, [edx + edi*4]
xor ecx, ecx
xor edx, edx
test esi, esi
jle 0x444ecd
cmp esi, 8
jb 0x446715
cmp dword [0x555fd4], 2
jl 0x446715
mov eax, esi
and eax, 0x80000007
jns 0x4466bf
dec eax
or eax, 0xfffffff8
inc eax
mov edx, esi
xorps xmm1, xmm1
sub edx, eax
xorps xmm2, xmm2
nop dword [eax]
movups xmm0, xmmword [edi + ecx*4]
pmaxsd xmm1, xmm0
movups xmm0, xmmword [edi + ecx*4 + 0x10]
add ecx, 8
pmaxsd xmm2, xmm0
cmp ecx, edx
jl 0x4466d0
pmaxsd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
pmaxsd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
pmaxsd xmm1, xmm0
movd edx, xmm1
cmp ecx, esi
jge 0x444ecd
mov eax, dword [edi + ecx*4]
cmp edx, eax
cmovge eax, edx
inc ecx
mov edx, eax
cmp ecx, esi
jl 0x446715
mov dword [0x557100], edx
lea esp, [ebp - 0x30]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, str.Actor
call fcn.004a1c00
nop
mov byte [0xe500444a], al
dec edx
inc esp
add byte [esi], dh
dec ebx
inc esp
add byte [esi - 0x24ffbbb5], al
dec ebx
inc esp
add byte [ebx], dh
dec esp
inc esp
add byte [eax + 0x4c], dh
inc esp
add byte [edx + 0xa00444c], dh
dec ebp
inc esp
add byte [edx], ch
dec ebp
inc esp
add byte [ebp + 0x4d], cl
inc esp
add byte [ebp + 0x4d], ch
inc esp
add byte [esi], ch
push ebx
inc esp
add byte [ebp + 0x14004453], ah
push esp
inc esp
add byte [edi], dh
push esp
inc esp
add byte [ebx + 0x54], bh
inc esp
add dh, al
push esp
inc esp
add ch, ch
push esp
inc esp
add byte [edx*2 + 0x553b0044], dl
inc esp
add byte [edi + 0x55], ah
inc esp
add byte [ebx - 0x3dffbbab], dl
push ebp
inc esp
add cl, dh
push ebp
inc esp
add byte [eax], ah
push esi
inc esp
add byte [edi + 0x56], cl
inc esp
add byte [esi + 0x56], bh
inc esp
add byte [ebp + 0x2004456], ch
push edi
inc esp
add byte [0x3c004457], dl
push edi
inc esp
add bl, ch
push edi
inc esp
add byte [edi], bh
pop eax
inc esp
add dl, ch
dec esp
inc esp
add byte [eax], al
add dword [edx], eax
add byte [ecx], al
add ah, byte [edx]
add eax, dword [edx]
and ah, byte [edx]
add eax, 572662278
and al, byte [edi]
and ah, byte [edx]
and ah, byte [edx]
or byte [ecx], cl
or ah, byte [edx]
and ah, byte [edx]
and ah, byte [edx]
and ah, byte [edx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or ecx, dword [ebx]
or esp, dword [edx]
and ah, byte [edx]
or al, 13
push cs
movups xmm2, xmmword [ecx]
adc dl, byte [ebx]
adc al, 21
push ss
pop ss
sbb byte [ecx], bl
sbb bl, byte [ebx]
sbb al, 29
push ds
pop ds
and ah, byte [edx]
and ah, byte [edx]
and byte [edx], ah
and ah, byte [edx]
and ah, byte [edx]
and dword [esi - 112], esp
xchg ebp, eax
dec ebp
inc esp
add byte [esi + 0x50], ch
inc esp
add ah, bl
push edi
inc esp
add ah, bl
push edi
inc esp
add ah, bl
push edi
inc esp
add byte [esi], bl
push eax
inc esp
add dh, bl
push edx
inc esp
add byte [eax - 0x17ffbba8], al
pop eax
inc esp
add byte [eax + 0x59], bl
inc esp
add al, ah
pop edx
inc esp
add byte [edi], dl
pop ebx
inc esp
add ah, dh
dec esp
inc esp
add byte [eax - 0x25ffbba5], ch
pop ebp
inc esp
add byte [eax + 0x3800445e], bl
pop edi
inc esp
add byte [eax], cl
inc esp
add al, ah
pushal
inc esp
add byte [edi + 0x61], ah
inc esp
add byte [ecx - 0x44ffbb9f], dl
popal
inc esp
add byte [ebx], ah
inc esp
add byte [ebx], cl
bound eax, qword [eax + eax + 0x62]
bound eax, qword [eax + eax - 0x22]
popal
inc esp
add byte [ebp + 0x63], bl
inc esp
add dl, ah
arpl word [eax + eax + 0x1c], ax
inc esp
add byte [esi], ch
inc sp
add byte [edx - 0x59ffbba7], cl
pop ecx
inc esp
add dl, al
pop ecx
inc esp
add dh, bl
pop ecx
inc esp
add byte [0x2500445a], al
pop edx
inc esp
add byte [ebp + 0x5a], al
inc esp
add byte [ebp - 0x24ffbba5], bh
pop ebx
inc esp
add byte [edi], cl
pop esp
inc esp
add byte [0x4b00445c], ch
pop esp
inc esp
add byte [ecx + 0x5c], ch
inc esp
add byte [edi - 0x5affbba4], al
pop esp
inc esp
add bl, al
pop esp
inc esp
add cl, ah
pop esp
inc esp
add byte [0x5700445d], dl
pop ebp
inc esp
add byte [ecx - 0x48ffbba3], bl
pop ebp
inc esp
add ah, cl
int3