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

Disassembly:
sub esp, 0x1dc
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x8268]
test eax, eax
mov byte [esp + 7], 1
mov byte [esp + 0x2c], 0
je 0x623ff0
mov ecx, dword [eax]
cmp ecx, dword [esp + 0x1e4]
je 0x623feb
mov dword [eax + 0x18], 0x14
mov dword [ebp + 0x8268], 0
jmp 0x623ff0
mov byte [esp + 7], 0
push ebx
push esi
push edi
mov ecx, ebp
mov byte [0x8bbc70], 0
call fcn.006220a0
mov ecx, ebp
call fcn.00621ed0
call fcn.00593870
push 0
call fcn.00599510
mov ecx, dword [ebp + 0x8264]
add esp, 4
xor eax, eax
test ecx, ecx
jle 0x62443c
mov edx, dword [esp + 0x1f0]
lea ecx, [ebp + 0x7de4]
cmp dword [ecx], edx
je 0x62404b
mov esi, dword [ebp + 0x8264]
inc eax
add ecx, 0x24
cmp eax, esi
jl 0x624034
jmp 0x62443c
lea edx, [eax + eax*8]
lea esi, [ebp + edx*4]
lea eax, [esi + 0x7de4]
mov dword [ebp + 0x8268], eax
mov cl, byte [eax + 0x10]
test cl, cl
mov dword [esp + 0x14], esi
jne 0x624086
lea esp, [esp]
push 1
mov ecx, ebp
call fcn.006230d0
mov eax, dword [ebp + 0x8268]
mov cl, byte [eax + 0x10]
test cl, cl
je 0x624070
mov ecx, dword [esi + 0x7de8]
push ecx
call fcn.00792cfc
mov ecx, eax
xor ebx, ebx
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x24], ecx
mov dword [ebp + 0x20], ebx
jle 0x624125
jmp 0x6240b0
mov esi, dword [esp + 0x14]
mov edi, edi
mov eax, dword [esi + 0x7de8]
lea edx, [esp + 0x6c]
push edx
push ebx
push eax
call fcn.00792d31
lea eax, [esp + 0x78]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6240d0
mov cl, byte [esp + 0x13]
sub eax, edx
test cl, cl
je 0x62411c
mov edi, str..ebo
lea esi, [esp + eax + 0x68]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x62411c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x7de8]
push ebx
push ecx
call fcn.00792c1c
add esp, 8
push eax
call fcn.006fecb0
mov ecx, eax
call fcn.00700a00
inc dword [ebp + 0x853c]
mov ecx, dword [esp + 0x24]
inc ebx
cmp ebx, ecx
jl 0x6240aa
mov esi, dword [0x9e6b94]
mov eax, dword [0x9e6b9c]
cmp esi, 1
sete byte [esp + 0x33]
test eax, eax
mov byte [esp + 0x23], 0
je 0x624150
cmp eax, 2
je 0x624150
cmp eax, 5
mov byte [esp + 0x13], 0
jne 0x624155
mov byte [esp + 0x13], 1
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x18], ebx
jle 0x62443c
lea esi, [esp + 0x6c]
sub esi, 4
mov dword [esp + 0x2c], esi
jmp 0x624180
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
jmp 0x624180
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x7de8]
lea edx, [esp + 0x6c]
push edx
push ebx
push ecx
call fcn.00792d31
lea eax, [esp + 0x78]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6241a0
sub eax, edx
add esi, eax
mov edi, str..bnk
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x624230
mov eax, dword [ebp + 0x8268]
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x624228
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x7de8]
push ebx
push edx
call fcn.00792c1c
push 0
push 0x10
push 0x100
push 0x4c
push 0x847a97
mov esi, eax
call fcn.00638ba0
add esp, 0x1c
test eax, eax
je 0x624208
mov ecx, dword [0xa94de0]
push ecx
push esi
mov ecx, eax
call fcn.006f2500
jmp 0x62420a
xor eax, eax
mov ecx, dword [ebp + 0x8544]
mov edx, dword [ebp + 0x8268]
inc ecx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x8544], ecx
mov dword [edx + 0x20], eax
jmp 0x624427
mov dword [ebp + 0x20], eax
jmp 0x624427
mov ecx, dword [0x8cd980]
cmp eax, ecx
jle 0x624427
sub eax, ecx
lea esi, [esp + eax + 0x6c]
mov edi, str..pc.set
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x624427
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 0x7de8]
push ecx
xor ebx, ebx
push edx
mov dword [esp + 0x24], ebx
call fcn.00792c1c
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 0x7de8]
mov esi, eax
lea eax, [esp + 0x3c]
push eax
push ebx
push ecx
push ebx
push edx
mov dword [esp + 0x50], ebx
call fcn.00792baa
mov eax, dword [esp + 0x50]
add esp, 0x1c
push eax
lea ecx, [esp + 0x20]
push ecx
push esi
mov ecx, ebp
call fcn.00622260
mov dword [esp + 0x28], eax
lea esi, [esp + 0x6c]
mov edi, edi
mov al, byte [esi + 1]
inc esi
cmp al, 0x2e
jne 0x6242b0
mov edx, dword [0x8cd950]
mov eax, edx
inc esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6242c4
sub eax, edi
push eax
push edx
push esi
call fcn.0081e1e0
add esp, 0xc
test eax, eax
jne 0x6242f2
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push edx
push eax
mov ecx, ebp
call fcn.00622140
jmp 0x624427
mov edx, dword [0x8cd954]
mov eax, edx
lea edi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x624300
sub eax, edi
push eax
push edx
push esi
call fcn.0081e1e0
add esp, 0xc
test eax, eax
je 0x624427
mov al, byte [esp + 0x33]
test al, al
je 0x62434d
mov edx, dword [0x8cd958]
mov eax, edx
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x624330
sub eax, edi
push eax
push edx
push esi
call fcn.0081e1e0
add esp, 0xc
test eax, eax
je 0x6243ac
jmp 0x624427
mov al, byte [esp + 0x13]
test al, al
je 0x624384
mov edx, dword [0x8cd95c]
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x624360
sub eax, edi
push eax
push edx
push esi
call fcn.0081e1e0
add esp, 0xc
test eax, eax
je 0x6243ac
mov al, byte [esp + 0x13]
test al, al
jne 0x624427
mov edx, dword [0x8cd960]
mov eax, edx
lea edi, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x624390
sub eax, edi
push eax
push edx
push esi
call fcn.0081e1e0
add esp, 0xc
test eax, eax
jne 0x624427
mov al, byte [esp + 0x23]
test al, al
jne 0x624427
mov eax, dword [0x8cd958]
mov ecx, eax
lea edi, [ecx + 1]
mov edi, edi
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x6243c0
sub ecx, edi
cmp byte [ecx + esi], 0x2e
je 0x624404
xor edx, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x6243d4
sub eax, edi
lea ecx, [eax + esi]
mov al, byte [ecx]
cmp al, 0x2e
je 0x6243f7
movsx eax, al
lea edx, [edx + edx*4]
inc ecx
lea edx, [eax + edx*2 - 0x30]
mov al, byte [ecx]
cmp al, 0x2e
jne 0x6243e6
cmp edx, dword [0x9188f8]
jne 0x624427
mov byte [esp + 0x23], 1
cmp dword [esp + 0x1c], 0x28
jl 0x624427
fld dword [ebp + 0x6c]
mov edx, dword [esp + 0x28]
push ecx
fchs
xor ecx, ecx
fstp dword [esp]
mov cl, byte [ebp + 0x68]
push ecx
push edx
call fcn.00593850
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x624170
mov edi, dword [esp + 0x1f0]
mov eax, dword [edi + 8]
movsx eax, word [eax]
mov ecx, dword [0xa94de4]
push eax
call fcn.00638fe0
mov esi, eax
push 1
mov ecx, ebp
mov dword [esp + 0x38], esi
call fcn.00622840
push esi
mov dword [ebp + 0x780c], 0
call fcn.00832616
mov ecx, dword [ebp + 0x20]
add esp, 4
push esi
call fcn.006f1bc0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0
je 0x62449d
mov ecx, ebx
call fcn.006f2d60
mov dword [esp + 0x28], eax
mov ecx, dword [0xa73878]
mov dword [ebp + 0x5c], ecx
mov eax, dword [edi + 8]
movsx edx, word [eax + 4]
movsx eax, word [eax + 2]
sub edx, eax
mov eax, dword [esp + 0x28]
add edx, ecx
xor edi, edi
test eax, eax
mov dword [ebp + 0x58], edx
mov dword [esp + 0x24], edi
jle 0x624676
lea ebx, [ebx]
push edi
mov ecx, ebx
call fcn.006f8440
mov esi, eax
test esi, esi
je 0x624665
movzx ecx, byte [esi + 0x1a]
xor edi, edi
xor eax, eax
test ecx, ecx
jle 0x624509
mov edx, dword [esi + 0x1c]
mov ebx, dword [edx]
cmp word [ebx], 0x22
je 0x624503
inc eax
add edx, 4
cmp eax, ecx
jl 0x6244f1
jmp 0x624509
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + eax*4]
xor eax, eax
test ecx, ecx
jle 0x62453a
mov edx, dword [esi + 0x1c]
mov ebx, dword [edx]
cmp word [ebx], 0x23
je 0x624524
inc eax
add edx, 4
cmp eax, ecx
jl 0x624512
jmp 0x62453a
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x62453a
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x62453a
mov byte [esp + 0x38], 1
mov ecx, dword [ebp + 0x780c]
imul ecx, ecx, 0x38
mov dword [ecx + ebp + 0x7830], esi
mov edx, dword [ebp + 0x780c]
imul edx, edx, 0x38
mov ecx, esi
mov byte [edx + ebp + 0x781c], 0
call fcn.006f2d00
mov eax, dword [ebp + 0x780c]
imul eax, eax, 0x38
fstp dword [eax + ebp + 0x7844]
mov ecx, dword [ebp + 0x780c]
imul ecx, ecx, 0x38
or eax, 0xffffffff
mov dword [ecx + ebp + 0x7824], eax
mov edx, dword [ebp + 0x780c]
imul edx, edx, 0x38
mov dword [edx + ebp + 0x7820], eax
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.006f2d20
mov ecx, dword [ebp + 0x780c]
imul ecx, ecx, 0x38
lea edx, [ecx + ebp + 0x7838]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
mov ecx, dword [ebp + 0x780c]
xor eax, eax
imul ecx, ecx, 0x38
cmp edi, eax
je 0x624617
mov edx, dword [edi + 8]
mov dword [ecx + ebp + 0x7810], edx
mov eax, dword [ebp + 0x780c]
mov ecx, dword [edi + 0xc]
imul eax, eax, 0x38
mov dword [eax + ebp + 0x7814], ecx
mov edx, dword [ebp + 0x780c]
mov eax, dword [edi + 4]
imul edx, edx, 0x38
mov dword [edx + ebp + 0x782c], eax
mov ecx, dword [ebp + 0x780c]
mov edx, dword [edi + 0x10]
add ecx, 0x225
imul ecx, ecx, 0x38
mov dword [ecx + ebp], edx
jmp 0x624650
mov dword [ecx + ebp + 0x7810], eax
mov edx, dword [ebp + 0x780c]
imul edx, edx, 0x38
mov dword [edx + ebp + 0x7814], eax
mov ecx, dword [ebp + 0x780c]
imul ecx, ecx, 0x38
mov dword [ecx + ebp + 0x782c], eax
mov edx, dword [ebp + 0x780c]
add edx, 0x225
imul edx, edx, 0x38
mov dword [edx + ebp], eax
mov eax, dword [ebp + 0x780c]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
inc eax
mov dword [ebp + 0x780c], eax
mov eax, dword [esp + 0x28]
inc edi
cmp edi, eax
mov dword [esp + 0x24], edi
jl 0x6244d0
mov eax, dword [ebp + 0x780c]
mov ebx, dword [0xaac2a8]
xor edi, edi
test eax, eax
jle 0x6247eb
lea esi, [ebp + 0x7810]
mov eax, dword [esi + 4]
dec eax
cmp eax, 0xb
mov dword [esp + 0x14], 0
ja case.0x6246a7.2
jmp dword [eax*4 + 0x624d20]
mov eax, dword [0xa73748]
test eax, eax
je case.0x6246a7.2
jmp 0x6247a5
mov eax, dword [0xa8d9e0]
test eax, eax
je case.0x6246a7.2
jmp 0x6247a5
mov eax, dword [0xa8d9e4]
test eax, eax
je case.0x6246a7.2
jmp 0x6247a5
mov eax, dword [0xa73768]
test eax, eax
jne 0x6247a5
mov eax, dword [0xa73788]
test eax, eax
jne 0x6247a5
cmp dword [0xa736f4], 6
jne 0x624714
mov eax, dword [0xa7375c]
test eax, eax
jne 0x6247a5
mov edx, dword [0xa7371c]
imul edx, edx, 0xdc
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x18]
push ecx
add edx, 0xa843d8
push edx
call fcn.0061da10
mov ecx, eax
call fcn.0061dad0
jmp 0x6247a9
mov eax, dword [0xa7378c]
test eax, eax
jne 0x6247a5
mov edx, dword [0xa7371c]
imul edx, edx, 0xdc
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
push ecx
add edx, 0xa843d8
push edx
call fcn.0061da10
mov ecx, eax
call fcn.0061dad0
jmp 0x6247a9
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.0060dc20
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.006048e0
add esp, 0x10
test eax, eax
je 0x6247a9
jmp 0x6247a5
mov ecx, dword [ebp + 0x24]
push ecx
mov ecx, ebp
call fcn.00621490
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
je case.0x6246a7.2
mov eax, dword [esi]
cmp eax, 3
je 0x6247d1
cmp eax, 4
je 0x6247d8
mov eax, dword [ebp + 0x780c]
inc edi
add esi, 0x38
cmp edi, eax
jl 0x624692
jmp 0x6247eb
mov edx, dword [ecx + 0x14]
mov ebx, dword [edx]
jmp 0x6247de
mov eax, dword [ecx + 0x14]
mov ebx, dword [eax]
inc ebx
and ebx, reloc.DSOUND.dll_DirectSoundCreate
jns 0x6247eb
dec ebx
or ebx, 0xfffffffe
inc ebx
mov eax, dword [ebp + 0x780c]
xor edi, edi
test eax, eax
jle 0x62484a
lea esi, [ebp + 0x7820]
lea ecx, [ecx]
mov eax, dword [esi - 0x10]
cmp eax, 1
jne 0x62480e
mov dword [esi], 0
cmp eax, 2
jne 0x624819
mov dword [esi], 1
cmp eax, 3
jne 0x624820
mov dword [esi], ebx
cmp eax, 4
jne 0x62482e
xor ecx, ecx
test ebx, ebx
sete cl
mov dword [esi], ecx
test eax, eax
jne 0x62483c
call fcn.0060fae0
and eax, 1
mov dword [esi], eax
mov eax, dword [ebp + 0x780c]
inc edi
add esi, 0x38
cmp edi, eax
jl 0x624800
mov edx, dword [esp + 0x34]
push edx
mov ecx, ebp
call fcn.00622b40
mov al, byte [ebp + 0x14]
test al, al
jne 0x62488b
call fcn.006255a0
cmp eax, 4
jne 0x62488b
mov eax, dword [0xa8446c]
mov dword [ebp + 0xc], eax
mov ecx, dword [0xa84548]
mov eax, 0xb
mov dword [ebp + 0x10], ecx
mov dword [0xa8446c], eax
mov dword [0xa84548], eax
mov byte [ebp + 0x14], 1
mov edx, dword [esp + 0x1f0]
mov eax, dword [edx + 8]
movsx ecx, word [eax + 2]
mov eax, dword [ebp + 0x780c]
xor edi, edi
test eax, eax
mov dword [esp + 0x1c], ecx
jle 0x6249fc
fild dword [esp + 0x1c]
lea esi, [ebp + 0x7814]
fstp dword [esp + 0x2c]
jmp 0x6248c0
mov eax, dword [esi]
cmp eax, 3
mov dword [esi + 0x14], 0
jne 0x6248d9
mov edx, dword [0xa8de18]
mov dword [esi + 0x14], edx
jmp 0x624910
cmp eax, 8
jne 0x6248e8
mov eax, dword [0xa99048]
mov dword [esi + 0x14], eax
jmp 0x624910
cmp eax, 9
jne 0x6248f5
mov ecx, dword [0xa9905c]
jmp 0x62490d
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
imul edx, edx, 0x37
add edx, eax
mov eax, dword [edx*4 + 0xa843e4]
mov ecx, dword [eax + 0x4d0]
mov dword [esi + 0x14], ecx
mov edx, dword [esp + 0x38]
push edx
lea edx, [esp + 0x28]
push edx
lea eax, [esi + 0x30]
lea ecx, [esi + 0x24]
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x34], 0
call fcn.006210c0
mov ecx, dword [0xaacab4]
push 0
call fcn.006f4740
test eax, eax
je 0x624b84
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x1c]
push ecx
push 0
push 0x3f800000
push edx
mov ecx, eax
call fcn.006f4c70
mov ebx, eax
test ebx, ebx
je 0x62496d
mov ecx, dword [ebx + 0x14]
inc ecx
mov eax, ecx
inc eax
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x14], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
mov dword [esi + 0x20], ebx
je 0x624982
dec dword [ecx + 0x14]
jne 0x624982
mov eax, dword [ecx]
push 1
call dword [eax]
test ebx, ebx
je 0x624993
dec dword [ebx + 0x14]
jne 0x624993
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx]
push 0
push 0
push 0
push 0
push 0
push 0
push eax
lea eax, [esi + 0x20]
push eax
call dword [edx + 8]
mov ecx, dword [esi + 0x14]
lea eax, [esi + 0x24]
push eax
call fcn.006f0e10
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esi + 0x14]
call fcn.006f0e90
mov ebx, dword [esp + 0x1c]
push ebx
push 0
push edi
mov ecx, ebp
call fcn.00623ca0
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x1c]
push edi
push edx
push ebx
push 0
push eax
mov ecx, ebp
call fcn.00623dc0
mov eax, dword [ebp + 0x780c]
inc edi
add esi, 0x38
cmp edi, eax
jl 0x6248c0
mov eax, dword [ebp + 0x780c]
xor ebx, ebx
test eax, eax
jle 0x624a5e
lea esi, [ebp + 0x782c]
mov edi, edi
mov al, byte [esi - 0x10]
test al, al
je 0x624a50
mov ecx, dword [esi]
test ecx, ecx
je 0x624a50
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x624a22
sub eax, edi
mov dword [esp + 0x2c], eax
je 0x624a50
mov edx, dword [esi - 0xc]
mov edi, dword [esi - 8]
imul edx, edx, 0xb
add edx, edi
shl edx, 5
lea edx, [edx + ebp + 0x827c]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x624a46
mov eax, dword [ebp + 0x780c]
inc ebx
add esi, 0x38
cmp ebx, eax
jl 0x624a10
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, ebp
mov byte [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
call fcn.006210c0
mov edi, dword [esp + 0x34]
push edi
lea ecx, [esp + 0xf0]
push 0x84f224
push ecx
call fcn.0081cf4d
mov ecx, dword [ebp + 0x20]
add esp, 0xc
lea edx, [esp + 0xec]
push edx
call fcn.006f1bc0
test eax, eax
mov dword [ebp + 0x5e8], eax
je 0x624b17
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x58]
push edx
push ecx
lea esi, [ebp + 0xe0]
push eax
mov ecx, esi
call fcn.006f1590
fild dword [esp + 0x1c]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.006f1500
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x5e8]
push 0xffffffffffffffff
push 0
push edx
push 0
push eax
mov ecx, ebp
call fcn.00623dc0
push edi
lea ecx, [esp + 0xf0]
push str._s_BALL
push ecx
call fcn.0081cf4d
mov ecx, dword [ebp + 0x20]
add esp, 0xc
lea edx, [esp + 0xec]
push edx
call fcn.006f1bc0
mov ebx, eax
test ebx, ebx
mov dword [ebp + 0x7400], 0
je 0x624cd8
mov ecx, ebx
call fcn.006fca40
mov edx, dword [ebp + 0x780c]
xor ecx, ecx
test edx, edx
jle 0x624b9b
lea edx, [ebp + 0x7830]
lea ebx, [ebx]
cmp eax, dword [edx]
je 0x624b8b
mov esi, dword [ebp + 0x780c]
inc ecx
add edx, 0x38
cmp ecx, esi
jl 0x624b70
jmp 0x624b9b
xor ebx, ebx
jmp 0x62496d
imul ecx, ecx, 0x38
mov eax, dword [ecx + ebp + 0x7828]
mov dword [ebp + 0x7400], eax
mov eax, dword [ebp + 0x7400]
test eax, eax
je 0x624cd8
mov ecx, dword [0xa83fdc]
xor eax, eax
test ecx, ecx
je 0x624bba
mov eax, 1
mov ecx, dword [0xa83e88]
fld dword [0x8466a0]
mov edx, dword [0xa83ef0]
fsub dword [0xa83ed0]
push 0
push eax
mov eax, dword [0xa83eec]
push ecx
mov ecx, dword [0xa83ee8]
push edx
mov edx, dword [0xa83ff4]
push eax
mov eax, dword [0xa83ff0]
push ecx
push edx
mov edx, dword [0xa83f04]
push eax
mov eax, dword [0xa83f08]
push ecx
mov ecx, dword [0xa83f14]
fstp dword [esp]
push ecx
push edx
lea esi, [ebp + 0x63c]
push eax
mov ecx, esi
call fcn.006fa990
lea ecx, [esp + 0x60]
push ecx
mov ecx, ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x1c], 0
call fcn.006f2d20
mov edx, dword [eax]
mov dword [esp + 0x3c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x48]
push eax
mov ecx, ebp
call fcn.006210c0
push 1
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.005ff140
lea edi, [ebp + 0x5ec]
add esp, 0xc
mov ecx, edi
call fcn.006fbfe0
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call fcn.006fb760
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.006fb780
mov ecx, dword [ebp + 0x7400]
push 0
lea esi, [ecx + 0xc]
call fcn.006f0e80
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
fstp dword [esp]
push esi
push ecx
lea edx, [esp + 0x4c]
push edx
push eax
push ebx
mov ecx, edi
call fcn.006fc020
cmp dword [ebp + 0x4c], 7
pop edi
pop esi
pop ebx
jne 0x624cf6
push 0
push 0x2d
push 1
call fcn.0059ee00
add esp, 0xc
mov dword [ebp + 0x4c], 8
call fcn.00575c30
call fcn.00575c10
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x50], eax
dec eax
mov byte [ebp + 0x60], 0
mov dword [ebp + 0x54], eax
call fcn.005d8520
pop ebp
add esp, 0x1dc
ret 4