Function at 0x4ad300
Capabilities:
Get geographical location
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57d1ef
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x61c948]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push esi
push edi
mov eax, dword [0x61c948]
xor eax, esp
push eax
lea eax, [esp + 0x268]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor esi, esi
cmp ebx, esi
mov edi, ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x48], esi
jne 0x4ad35d
mov eax, 0x80004003
jmp 0x4afe81
mov ecx, dword [edi + 0x300]
cmp ecx, esi
mov dword [esp + 0xb0], 0x80004005
je 0x4ad37b
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
lea ecx, [edi + 0x304]
mov dword [edi + 0x300], esi
call fcn.004aa0f0
push 0xffffffffffffffff
lea ecx, [edi + 0x320]
push esi
call fcn.004c8620
push 0x230
call fcn.0044ff38
add esp, 4
mov dword [esp + 0x6c], eax
cmp eax, esi
mov dword [esp + 0x270], esi
je 0x4ad3c8
lea ecx, [esp + 0xb0]
push ecx
push ebx
mov ecx, eax
call fcn.004b7a80
jmp 0x4ad3ca
xor eax, eax
cmp eax, esi
mov dword [esp + 0x270], 0xffffffff
mov dword [edi + 0x300], eax
jne 0x4ad3e9
mov eax, 0x8007000e
jmp 0x4afe81
cmp dword [esp + 0xb0], esi
jge 0x4ad413
mov ecx, eax
cmp ecx, esi
je 0x4ad401
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov eax, dword [esp + 0xb0]
mov dword [edi + 0x300], esi
jmp 0x4afe81
mov ecx, 1
mov dword [edi + 0x208], esi
mov dword [edi + 0x20c], esi
mov dword [edi + 0x210], esi
mov dword [edi + 0x214], esi
mov dword [edi + 0x200], esi
mov dword [edi + 0x204], esi
mov dword [edi + 0x218], esi
mov dword [edi + 0x21c], esi
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 0x1c8]
cmp ecx, esi
je 0x4af941
jmp 0x4ad470
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4afb7a
mov eax, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax]
test eax, eax
mov ecx, dword [ecx]
mov dword [esp + 0x6c], ecx
je 0x4af937
jmp 0x4ad49a
mov eax, dword [esp + 0x70]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4afb7a
mov esi, dword [eax + 8]
mov ecx, dword [eax]
push 0
lea eax, [esi + 0xdc]
push 2
mov dword [esp + 0x78], ecx
push eax
mov ecx, esi
mov dword [esp + 0x94], esi
call fcn.004b2c30
test al, al
je 0x4af924
lea edx, [esp + 0x18]
push edx
lea ecx, [esi + 0xc8]
call fcn.004abf10
mov dword [esp + 0x270], 1
call fcn.0045881f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4afb7a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push ecx
push eax
lea ecx, [esp + 0x38]
push str.Output__I64d
push ecx
mov byte [esp + 0x280], 2
call fcn.00409fe0
add esp, 0x10
lea ecx, [esp + 0x214]
call fcn.00557c40
lea ecx, [esp + 0x34]
call fcn.004aa010
push 1
lea ecx, [esp + 0x218]
mov byte [esp + 0x274], 4
call fcn.00557dc0
mov eax, dword [esi + 0x38]
cmp eax, 1
mov ecx, dword [esi + 0x3c]
mov ebx, dword [esp + 0x18]
jne 0x4ae603
test ecx, ecx
jne 0x4ae603
mov edi, dword [esp + 0xc8]
push edi
lea edx, [esp + 0x34]
push str.Video__d
push edx
call fcn.00409fe0
mov eax, dword [0x59dbb4]
mov ecx, dword [0x59dbb8]
mov edx, dword [0x59dbbc]
mov dword [esp + 0x220], eax
mov eax, dword [0x59dbc0]
push str.V_MS_VFW_FOURCC
add edi, 1
push ebx
mov dword [esp + 0xdc], edi
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], edx
mov dword [esp + 0x234], eax
call fcn.0047472f
add esp, 0x14
test eax, eax
sete al
test al, al
je 0x4ad742
mov ecx, dword [0x59deb4]
mov eax, dword [0x59debc]
mov edx, dword [0x59deb8]
mov dword [esp + 0x240], ecx
mov ecx, dword [0x59dec0]
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x244], edx
mov eax, dword [esi + 0xe4]
add eax, 0x30
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov edx, dword [esp + 0x254]
push edx
mov edi, eax
mov eax, dword [esp + 0x25c]
push 0
push eax
call fcn.004727f0
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe0]
push eax
push ecx
lea ecx, [edi + 0x30]
push ecx
call fcn.00473850
mov eax, dword [edi + 0x40]
mov dword [esp + 0x23c], eax
mov word [esp + 0x138], 0
mov word [esp + 0x13a], 0x10
mov eax, dword [esp + 0x138]
mov ecx, 0xaa000080
mov edx, 0x719b3800
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], ecx
mov dword [esp + 0x248], edx
mov eax, dword [edi + 0x40]
add esp, 0x18
test eax, eax
je 0x4ad6b4
cmp eax, 3
jne 0x4ad730
movzx eax, word [edi + 0x3e]
cmp ax, 1
jne 0x4ad6c5
mov eax, 0x59dc54
jmp 0x4ad709
cmp ax, 4
jne 0x4ad6d2
mov eax, 0x59dc64
jmp 0x4ad709
cmp ax, 8
jne 0x4ad6df
mov eax, 0x59dc74
jmp 0x4ad709
cmp ax, 0x10
jne 0x4ad6ec
mov eax, 0x59dc84
jmp 0x4ad709
cmp ax, 0x18
jne 0x4ad6f9
mov eax, 0x59dca4
jmp 0x4ad709
cmp ax, 0x20
mov eax, 0x59dcc4
je 0x4ad709
mov eax, 0x59b9b0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x224], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x228], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], edx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x214]
push eax
push ecx
jmp 0x4ae318
push str.V_UNCOMPRESSED
push ebx
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4ae321
cmp dword [ebx - 0xc], 0
jl 0x4ae19d
push str.V_MPEG4_ISO_AVC
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4adf20
sub eax, ebx
jne 0x4adf20
cmp dword [esi + 0xe4], 6
jl 0x4adf20
cmp dword [esi + 0xe4], 5
jle 0x4afb84
mov eax, dword [esi + 0xe0]
mov bl, byte [eax + 5]
add eax, 5
xor edi, edi
xor eax, eax
xor edx, edx
and bl, 0x1f
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edi
mov ecx, dword [esi + 0xe4]
test ecx, ecx
mov byte [esp + 0x270], 5
mov dword [esp + 0x14], ecx
jle 0x4ad80d
test edi, edi
jl 0x4afb84
cmp edi, dword [esi + 0xe4]
jge 0x4afb84
mov eax, dword [esi + 0xe0]
add eax, edi
push eax
lea ecx, [esp + 0x5c]
call fcn.004ad290
add edi, 1
cmp edi, dword [esp + 0x14]
jl 0x4ad7d6
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], ecx
test bl, bl
mov byte [esp + 0x270], 6
mov dword [esp + 0x1c], 6
je 0x4ada32
jmp 0x4ad844
mov bl, byte [esp + 0x20]
add bl, 0xff
test eax, eax
mov byte [esp + 0x20], bl
jne 0x4ad853
xor ecx, ecx
jmp 0x4ad857
mov ecx, edx
sub ecx, eax
mov edi, dword [esp + 0x1c]
add edi, 2
cmp edi, ecx
ja 0x4adcaa
test eax, eax
je 0x4ad874
mov ecx, edx
sub ecx, eax
cmp dword [esp + 0x1c], ecx
jb 0x4ad881
call fcn.0047c6b3
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
test eax, eax
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + ebx]
mov dword [esp + 0x14], ecx
lea edi, [ebx + 1]
je 0x4ad89b
mov ecx, edx
sub ecx, eax
cmp edi, ecx
jb 0x4ad8a8
call fcn.0047c6b3
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
test eax, eax
movzx ecx, byte [eax + edi]
mov edi, dword [esp + 0x14]
mov ch, byte [edi]
mov dword [esp + 0x84], ecx
jne 0x4ad8c1
xor edx, edx
jmp 0x4ad8c3
sub edx, eax
lea edi, [ecx + ebx + 2]
cmp edi, edx
mov dword [esp + 0x24], edi
ja 0x4adcaa
cmp dword [esp + 0x78], 0
jne 0x4ad8de
xor ebx, ebx
jmp 0x4ad8e6
mov ebx, dword [esp + 0x7c]
sub ebx, dword [esp + 0x78]
lea edx, [ebx + ecx + 2]
push 0
push edx
lea ecx, [esp + 0x7c]
call fcn.004ad150
mov ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x7c]
mov edi, ecx
jbe 0x4ad90b
call fcn.0047c6b3
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xd0], edi
add edi, ebx
cmp edi, dword [esp + 0x7c]
lea eax, [esp + 0x74]
mov dword [esp + 0xcc], eax
mov dword [esp + 0x14], edi
ja 0x4ad92d
cmp edi, ecx
jae 0x4ad932
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
mov edi, eax
jbe 0x4ad947
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
add edi, ecx
cmp edi, dword [esp + 0x60]
lea ebx, [esp + 0x58]
ja 0x4ad95f
cmp edi, eax
jae 0x4ad968
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], edi
add edi, 2
cmp edi, dword [ebx + 8]
ja 0x4ad979
cmp edi, dword [ebx + 4]
jae 0x4ad982
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x84]
add edi, edx
cmp edi, dword [ebx + 8]
ja 0x4ad995
cmp edi, dword [ebx + 4]
jae 0x4ad99e
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
mov ebx, eax
jbe 0x4ad9af
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
add ebx, ecx
cmp ebx, dword [esp + 0x60]
ja 0x4ad9bf
cmp ebx, eax
jae 0x4ad9c8
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xcc]
sub edi, ebx
add edx, edi
cmp edx, dword [ecx + 8]
ja 0x4ad9e1
cmp edx, dword [ecx + 4]
jae 0x4ad9f1
call fcn.0047c6b3
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xcc]
test edi, edi
mov edx, dword [esp + 0x60]
jle 0x4ada1f
mov eax, dword [esp + 0x14]
cmp eax, dword [ecx + 8]
jb 0x4ada07
call fcn.0047c6b3
mov ecx, dword [esp + 0x14]
push edi
push ebx
push edi
push ecx
call fcn.0047286a
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
add esp, 0x10
cmp byte [esp + 0x20], 0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
jne 0x4ad840
test eax, eax
jne 0x4ada3a
xor edx, edx
jmp 0x4ada3c
sub edx, eax
mov eax, dword [esp + 0x1c]
lea edi, [eax + 1]
cmp edi, edx
jbe 0x4adaa0
lea ecx, [esp + 0x74]
call fcn.00528780
lea ecx, [esp + 0x58]
call fcn.00528780
lea ecx, [esp + 0x34]
mov byte [esp + 0x270], 3
call fcn.004ab080
lea ecx, [esp + 0x214]
mov byte [esp + 0x270], 2
call fcn.00557c30
lea ecx, [esp + 0x30]
call fcn.004b29a0
lea ecx, [esp + 0x18]
mov dword [esp + 0x270], 0xffffffff
call fcn.004b29a0
jmp 0x4af924
push eax
lea ecx, [esp + 0x5c]
call fcn.0052a5a0
movzx eax, byte [eax]
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
je 0x4adc83
mov eax, dword [esp + 0x5c]
sub dword [esp + 0x14], 1
test eax, eax
mov edx, dword [esp + 0x60]
jne 0x4adad2
xor ecx, ecx
jmp 0x4adad6
mov ecx, edx
sub ecx, eax
mov ebx, dword [esp + 0x1c]
lea edi, [ebx + 2]
cmp edi, ecx
ja 0x4adcaa
test eax, eax
je 0x4adaf1
mov ecx, edx
sub ecx, eax
cmp ebx, ecx
jb 0x4adafe
call fcn.0047c6b3
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
test eax, eax
lea ecx, [eax + ebx]
mov dword [esp + 0x24], ecx
lea edi, [ebx + 1]
je 0x4adb14
mov ecx, edx
sub ecx, eax
cmp edi, ecx
jb 0x4adb21
call fcn.0047c6b3
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
test eax, eax
movzx ecx, byte [eax + edi]
mov edi, dword [esp + 0x24]
mov ch, byte [edi]
mov dword [esp + 0x20], ecx
jne 0x4adb37
xor edx, edx
jmp 0x4adb39
sub edx, eax
lea ebx, [ecx + ebx + 2]
cmp ebx, edx
mov dword [esp + 0x84], ebx
ja 0x4adcaa
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x4adb58
xor edi, edi
jmp 0x4adb5e
mov edi, dword [esp + 0x7c]
sub edi, eax
mov edx, dword [esp + 0x20]
push 0
lea eax, [edi + edx + 2]
push eax
lea ecx, [esp + 0x7c]
call fcn.004ad150
mov ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x7c]
mov ebx, ecx
jbe 0x4adb87
call fcn.0047c6b3
mov ecx, dword [esp + 0x78]
add edi, ebx
cmp edi, dword [esp + 0x7c]
lea eax, [esp + 0x74]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x24], edi
ja 0x4adba9
cmp edi, ecx
jae 0x4adbae
call fcn.0047c6b3
mov edi, dword [esp + 0x5c]
cmp edi, dword [esp + 0x60]
jbe 0x4adbbd
call fcn.0047c6b3
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], edi
add edi, ecx
cmp edi, dword [esp + 0x60]
lea ebx, [esp + 0x58]
ja 0x4adbd7
cmp edi, dword [esp + 0x5c]
jae 0x4adbdc
call fcn.0047c6b3
mov dword [esp + 0xf4], edi
add edi, 2
cmp edi, dword [ebx + 8]
mov dword [esp + 0xf0], ebx
ja 0x4adbf7
cmp edi, dword [ebx + 4]
jae 0x4adbfc
call fcn.0047c6b3
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xf0]
lea ebx, [edi + edx]
cmp ebx, dword [eax + 8]
ja 0x4adc14
cmp ebx, dword [eax + 4]
jae 0x4adc19
call fcn.0047c6b3
mov edi, dword [esp + 0x5c]
cmp edi, dword [esp + 0x60]
jbe 0x4adc28
call fcn.0047c6b3
mov eax, dword [esp + 0x1c]
add edi, eax
cmp edi, dword [esp + 0x60]
ja 0x4adc3a
cmp edi, dword [esp + 0x5c]
jae 0x4adc3f
call fcn.0047c6b3
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0xac]
push eax
push ecx
push edx
push ebx
lea eax, [esp + 0x164]
push edi
push eax
call fcn.004abea0
mov ecx, dword [esp + 0xa4]
add esp, 0x20
cmp dword [esp + 0x14], 0
mov dword [esp + 0x1c], ecx
jne 0x4adabd
lea ecx, [esp + 0x90]
call fcn.004a9fb0
mov ecx, dword [esp + 0x78]
test ecx, ecx
mov byte [esp + 0x270], 7
jne 0x4add2f
xor eax, eax
jmp 0x4add35
mov ecx, dword [esp + 0x78]
xor esi, esi
cmp ecx, esi
je 0x4adcc1
push ecx
call fcn.0044ff63
mov eax, dword [esp + 0x60]
add esp, 4
cmp eax, esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
je 0x4adcdd
push eax
call fcn.0044ff63
add esp, 4
lea ecx, [esp + 0x34]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov byte [esp + 0x270], 3
call fcn.004ab080
lea ecx, [esp + 0x214]
mov byte [esp + 0x270], 2
call fcn.00557c30
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x270], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4af8ed
mov eax, dword [esp + 0x7c]
sub eax, ecx
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x98]
call fcn.00514000
lea ecx, [esp + 0x144]
push ecx
lea ecx, [esp + 0x78]
call fcn.004ac4c0
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x78]
mov edi, eax
call fcn.004ac490
mov ecx, dword [esp + 0x94]
mov edx, dword [edi + 4]
push ecx
mov ecx, dword [edi]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
call fcn.004ac540
add esp, 0x14
push 0x31435641
lea ecx, [esp + 0x158]
call fcn.004a6320
mov ecx, dword [eax]
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [0x59dfd8]
mov eax, dword [0x59dfd4]
mov dword [esp + 0x244], ecx
lea ecx, [ebx + 0x84]
mov dword [esp + 0x230], edx
mov edx, dword [0x59dfdc]
mov dword [esp + 0x240], eax
mov eax, dword [0x59dfe0]
push ecx
lea ecx, [esp + 0x218]
mov dword [esp + 0x24c], edx
mov dword [esp + 0x250], eax
call fcn.00557880
mov edx, dword [esp + 0x254]
push edx
mov edi, eax
mov eax, dword [esp + 0x25c]
push 0
push eax
call fcn.004727f0
mov dword [edi + 0x48], 0x28
mov ecx, dword [esi + 0x1a4]
mov eax, dword [esi + 0x1a0]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x1b8]
mov edx, dword [esi + 0x1bc]
mov dword [esp + 0x5c], ecx
mov ecx, 1
add esp, 0xc
mov dword [edi + 0x50], eax
mov dword [edi + 0x58], 0x31435641
mov word [edi + 0x54], cx
mov word [edi + 0x56], 0x18
cmp dword [esi + 0xe4], ecx
mov dword [esp + 0x50], edx
jle 0x4afb84
mov eax, dword [esi + 0xe0]
add eax, ecx
movzx eax, byte [eax]
mov dword [edi + 0x78], eax
cmp dword [esi + 0xe4], 3
jle 0x4afb84
mov eax, dword [esi + 0xe0]
movzx edx, byte [eax + 3]
add eax, 3
mov dword [edi + 0x7c], edx
cmp dword [esi + 0xe4], 4
jle 0x4afb84
mov eax, dword [esi + 0xe0]
add eax, 4
movzx eax, byte [eax]
and eax, 3
add eax, ecx
mov ecx, dword [esp + 0x94]
push ebx
mov dword [edi + 0x80], eax
lea eax, [edi + 0x84]
push ecx
push eax
call fcn.00473850
add esp, 0xc
lea edx, [esp + 0x214]
mov dword [edi + 0x74], ebx
mov eax, dword [esp + 0x3c]
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.004aa680
lea ecx, [esp + 0x90]
call fcn.004a9ff0
lea ecx, [esp + 0x74]
call fcn.00528780
lea ecx, [esp + 0x58]
mov byte [esp + 0x270], 4
call fcn.00528780
jmp 0x4ae321
cmp dword [ebx - 0xc], 0
jl 0x4ae19d
push str.V_MPEG4_
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4ae069
sub eax, ebx
jne 0x4ae069
mov eax, 0xaa000080
mov dword [esp + 0x22c], eax
mov eax, dword [0x59dfd4]
mov edx, 0x5634504d
mov dword [esp + 0x224], edx
mov word [esp + 0x130], 0
mov word [esp + 0x132], 0x10
mov edx, dword [esp + 0x130]
mov ecx, 0x719b3800
mov dword [esp + 0x230], ecx
mov ecx, dword [0x59dfd8]
mov dword [esp + 0x240], eax
mov eax, dword [0x59dfe0]
mov dword [esp + 0x228], edx
mov edx, dword [0x59dfdc]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x24c], eax
mov dword [esp + 0x248], edx
mov eax, dword [esi + 0xe4]
add eax, 0x84
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov ecx, dword [esp + 0x254]
mov edx, dword [esp + 0x258]
push ecx
push 0
push edx
mov edi, eax
call fcn.004727f0
mov dword [edi + 0x48], 0x28
mov eax, dword [esi + 0x1a0]
mov ecx, dword [esi + 0x1a4]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x1b8]
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0x50], eax
mov dword [esp + 0x5c], ecx
mov dword [edi + 0x58], 0x5634504d
mov word [edi + 0x54], 1
mov word [edi + 0x56], 0x18
mov ecx, dword [esi + 0xe4]
mov dword [esp + 0x5c], edx
mov edx, dword [esi + 0xe0]
push ecx
lea eax, [edi + 0x84]
push edx
push eax
call fcn.00473850
mov eax, dword [esi + 0xe4]
mov dword [edi + 0x74], eax
mov ecx, dword [esp + 0x54]
add esp, 0x18
lea eax, [esp + 0x214]
push eax
push ecx
jmp 0x4ae318
cmp dword [ebx - 0xc], 0
jl 0x4ae19d
push str.V_REAL_RV
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4ae19d
sub eax, ebx
jne 0x4ae19d
cmp dword [ebx - 0xc], 9
jl 0x4afb89
movsx edx, byte [ebx + 9]
sub edx, 0x30
shl edx, 0x10
add edx, 0x30305652
push edx
lea ecx, [esp + 0x1d8]
call fcn.004a6320
mov ecx, dword [eax]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [0x59deb4]
mov ecx, dword [0x59deb8]
mov dword [esp + 0x240], eax
mov eax, dword [0x59dec0]
mov dword [esp + 0x230], edx
mov edx, dword [0x59debc]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x24c], eax
mov dword [esp + 0x248], edx
mov eax, dword [esi + 0xe4]
add eax, 0x58
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov ecx, dword [esp + 0x254]
mov edx, dword [esp + 0x258]
push ecx
push 0
push edx
mov edi, eax
call fcn.004727f0
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe0]
push eax
mov eax, dword [esp + 0x268]
push ecx
add eax, 0x58
push eax
call fcn.00473850
mov dword [edi + 0x30], 0x28
mov eax, dword [esi + 0x1a0]
mov ecx, dword [esi + 0x1a4]
mov dword [edi + 0x34], eax
mov eax, dword [esi + 0x1b8]
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x23c]
mov dword [esp + 0x68], ecx
add esp, 0x18
mov dword [esp + 0x50], edx
mov dword [edi + 0x40], eax
jmp 0x4ae30b
lea eax, [esp + 0x18]
push str.V_DIRAC
push eax
call fcn.00408360
add esp, 8
test al, al
je 0x4ae2b1
mov ecx, dword [str.vcrd]
mov edx, dword [0x5ebb8c]
mov eax, dword [0x5ebb90]
mov dword [esp + 0x224], ecx
mov ecx, dword [0x5ebb94]
mov dword [esp + 0x228], edx
mov edx, dword [0x5ebb98]
mov dword [esp + 0x22c], eax
mov eax, dword [str.U_DB]
mov dword [esp + 0x230], ecx
mov ecx, dword [0x5ebba0]
mov dword [esp + 0x240], edx
mov edx, dword [0x5ebba4]
mov dword [esp + 0x244], eax
mov dword [esp + 0x248], ecx
mov dword [esp + 0x24c], edx
mov eax, dword [esi + 0xe4]
add eax, 0x74
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov ecx, dword [esp + 0x258]
mov edi, eax
mov eax, dword [esp + 0x254]
push eax
push 0
push ecx
call fcn.004727f0
mov dword [edi + 0x48], 0x28
mov eax, dword [esi + 0x1a0]
mov edx, dword [esi + 0x1a4]
mov dword [edi + 0x4c], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esp + 0x5c], edx
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0x38], eax
mov dword [edi + 0x50], ecx
mov dword [edi + 0x3c], ecx
mov ecx, dword [esi + 0xe4]
mov dword [esp + 0x5c], edx
mov edx, dword [esi + 0xe0]
push ecx
lea eax, [edi + 0x74]
push edx
push eax
call fcn.00473850
mov eax, dword [esi + 0xe4]
mov dword [edi + 0x70], eax
mov ecx, dword [esp + 0x54]
add esp, 0x18
lea eax, [esp + 0x214]
push eax
push ecx
jmp 0x4ae318
lea edx, [esp + 0x18]
push str.V_MPEG2
push edx
call fcn.00408360
add esp, 8
test al, al
je 0x4ae321
mov edi, dword [esi + 0x1a4]
mov edx, dword [esi + 0x1a0]
mov ecx, dword [esi + 0xe4]
mov eax, dword [esi + 0xe0]
mov ebx, dword [esi + 0x1bc]
mov dword [esp + 0x50], edi
mov edi, dword [esi + 0x1b8]
push edi
push edx
push ecx
push eax
lea eax, [esp + 0x224]
push eax
mov dword [esp + 0x64], ebx
call fcn.0055fe80
add esp, 0x14
test al, al
je 0x4ae321
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x214]
push ecx
push edx
lea ecx, [esp + 0x3c]
call fcn.004aa680
fld qword [esi + 0x260]
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x4ae345
fld qword [esi + 0x260]
fdivr qword [0x5edbf0]
call fcn.00472696
jmp 0x4ae368
mov ecx, dword [esi + 0x13c]
test ecx, ecx
mov eax, dword [esi + 0x138]
ja 0x4ae35d
test eax, eax
jbe 0x4ae423
push 0
push 0x64
push ecx
push eax
call fcn.004735c0
mov dword [esp + 0xb4], eax
or eax, edx
mov dword [esp + 0xb8], edx
je 0x4ae423
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x14], 0
jle 0x4ae423
mov ebx, dword [esp + 0x38]
xor edi, edi
test edi, edi
jl 0x4afb84
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x14], ecx
jge 0x4afb84
lea edx, [ebx + edi + 0x2c]
push 0x59deb4
push edx
call fcn.00409f40
add esp, 8
test eax, eax
jne 0x4ae3ef
lea eax, [ebx + edi + 0x2c]
push 0x59dec4
push eax
call fcn.00409f40
add esp, 8
test eax, eax
jne 0x4ae3ef
lea ecx, [ebx + edi + 0x2c]
push 0x59dfd4
push ecx
call fcn.00409f40
add esp, 8
test eax, eax
je 0x4ae40b
mov eax, dword [ebx + edi + 0x44]
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], ecx
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
add eax, 1
add edi, 0x48
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
jl 0x4ae397
mov eax, dword [esi + 0x1d0]
or eax, dword [esi + 0x1d4]
je 0x4af490
mov eax, dword [esi + 0x1e8]
or eax, dword [esi + 0x1ec]
je 0x4af490
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
jle 0x4af495
xor edi, edi
test edi, edi
jl 0x4afb84
cmp ebx, dword [esp + 0x3c]
jge 0x4afb84
mov edx, dword [esp + 0x38]
lea eax, [edx + edi + 0x2c]
push 0x59deb4
push eax
call fcn.00409f40
mov ecx, dword [esp + 0x40]
add esp, 8
test eax, eax
je 0x4ae598
mov eax, dword [ecx + edi + 0x40]
mov ecx, dword [0x59dec8]
mov edx, dword [0x59dec4]
add eax, 0xffffffd0
mov dword [esp + 0x244], ecx
mov ecx, dword [0x59ded0]
mov dword [esp + 0x24], eax
mov dword [esp + 0x240], edx
mov edx, dword [0x59decc]
add eax, 0x48
mov dword [esp + 0x24c], ecx
push eax
lea ecx, [esp + 0x218]
mov dword [esp + 0x24c], edx
call fcn.00557880
cmp ebx, dword [esp + 0x3c]
jge 0x4afb84
mov edx, dword [esp + 0x38]
mov eax, dword [edx + edi + 0x44]
push 0x30
push eax
mov eax, dword [esp + 0x260]
push eax
call fcn.00473850
mov ecx, dword [esp + 0x264]
xor eax, eax
add ecx, 0x30
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
add esp, 0xc
mov dword [ecx + 0x14], eax
cmp ebx, dword [esp + 0x3c]
jge 0x4afb84
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + edi + 0x44]
mov edx, dword [esp + 0x24]
add eax, 0x30
push edx
push eax
mov eax, dword [esp + 0x260]
add eax, 0x48
push eax
call fcn.00473850
mov eax, dword [esi + 0x1d0]
mov ecx, dword [esi + 0x1d4]
mov edx, dword [esp + 0x264]
mov dword [edx + 0x38], eax
mov eax, dword [esi + 0x1e8]
mov edx, dword [esp + 0x264]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 0x1ec]
add esp, 0xc
mov dword [edx + 0x3c], eax
push 1
lea eax, [esp + 0x218]
push eax
mov dword [esp + 0x58], ecx
push ebx
lea ecx, [esp + 0x40]
call fcn.004aaf10
add ebx, 1
add edi, 0x48
jmp 0x4ae5ee
lea edx, [ecx + edi + 0x2c]
push 0x59dfd4
push edx
call fcn.00409f40
add esp, 8
test eax, eax
je 0x4ae5ee
mov ecx, dword [esi + 0x1d4]
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 0x1d0]
mov dword [esp + 0x50], ecx
mov ecx, dword [edx + edi + 0x44]
mov dword [ecx + 0x38], eax
cmp ebx, dword [esp + 0x3c]
mov ecx, dword [esi + 0x1ec]
mov eax, dword [esi + 0x1e8]
mov dword [esp + 0x50], ecx
jge 0x4afb84
mov edx, dword [esp + 0x38]
mov ecx, dword [edx + edi + 0x44]
mov dword [ecx + 0x3c], eax
add ebx, 1
add edi, 0x48
cmp ebx, dword [esp + 0x3c]
jl 0x4ae455
jmp 0x4af490
cmp eax, 2
jne 0x4af172
test ecx, ecx
jne 0x4af172
mov edi, dword [esp + 0xc4]
push edi
lea eax, [esp + 0x34]
push str.Audio__d
push eax
call fcn.00409fe0
mov ecx, dword [0x59dbc4]
mov edx, dword [0x59dbc8]
mov eax, dword [0x59dbcc]
mov dword [esp + 0x220], ecx
mov ecx, dword [0x59dbd0]
mov dword [esp + 0x224], edx
mov edx, dword [0x59ded4]
mov dword [esp + 0x22c], ecx
mov ecx, dword [0x59dedc]
add esp, 0xc
mov dword [esp + 0x21c], eax
mov eax, dword [0x59ded8]
mov dword [esp + 0x240], edx
mov edx, dword [0x59dee0]
mov dword [esp + 0x248], ecx
add edi, 1
push 0x12
lea ecx, [esp + 0x218]
mov dword [esp + 0xc8], edi
mov dword [esp + 0x248], eax
mov dword [esp + 0x250], edx
call fcn.00557880
mov edi, eax
mov eax, dword [esp + 0x254]
push eax
push 0
push edi
call fcn.004727f0
fnstcw word [esp + 0x2c]
mov ecx, dword [esi + 0x2a8]
mov edx, dword [esi + 0x2ac]
movzx eax, word [esp + 0x2c]
or eax, 0xc00
mov dword [esp + 0x30], eax
mov word [edi + 2], cx
mov dword [esp + 0x5c], edx
fld qword [esi + 0x278]
movzx ecx, cx
fldcw word [esp + 0x30]
add esp, 0xc
push 0x3e800
fistp qword [esp + 0x28]
mov ebx, dword [esp + 0x28]
mov dword [edi + 4], ebx
mov eax, dword [esi + 0x2d8]
mov edx, dword [esi + 0x2dc]
mov word [edi + 0xe], ax
fldcw word [esp + 0x24]
movzx eax, ax
mov dword [esp + 0x54], edx
imul eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
movzx edx, ax
imul edx, ebx
lea ecx, [esp + 0x218]
mov word [edi + 0xc], ax
mov dword [edi + 8], edx
call fcn.00557dc0
mov eax, dword [esp + 0x18]
push str.A_VORBIS
push eax
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
je 0x4aeab5
mov ebx, dword [esi + 0xe0]
lea ecx, [esp + 0x90]
call fcn.004aa220
mov al, byte [ebx]
add ebx, 1
test al, al
mov byte [esp + 0x270], 8
mov byte [esp + 0x20], al
jbe 0x4ae7c2
xor ecx, ecx
lea esp, [esp]
mov al, byte [ebx]
movzx edx, al
add ecx, edx
add ebx, 1
cmp al, 0xff
je 0x4ae790
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x98]
lea eax, [esp + 0x24]
push eax
push ecx
lea ecx, [esp + 0x98]
call fcn.004b1890
add byte [esp + 0x20], 0xff
jne 0x4ae78a
mov ecx, dword [esp + 0x98]
xor edi, edi
xor eax, eax
test ecx, ecx
jle 0x4ae7f2
mov edx, dword [esp + 0x94]
test eax, eax
jl 0x4afb84
cmp eax, ecx
jge 0x4afb84
add edi, dword [edx + eax*4]
add eax, 1
cmp eax, ecx
jl 0x4ae7d8
mov eax, dword [esi + 0xe0]
mov edx, dword [esi + 0xe4]
sub eax, edi
sub eax, ebx
add eax, edx
lea edx, [esp + 0x24]
push edx
push ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x2c], eax
call fcn.004b1890
mov ecx, dword [esp + 0x98]
lea eax, [ecx - 1]
test eax, eax
jl 0x4afb84
cmp eax, ecx
jge 0x4afb84
mov edx, dword [esp + 0x94]
add edi, dword [edx + eax*4]
cmp ecx, 3
jne 0x4ae9b3
mov ecx, dword [str.AXkJ]
mov eax, dword [0x5ebd28]
mov edx, dword [0x5ebd30]
mov dword [esp + 0x228], ecx
mov ecx, dword [0x5ebd38]
mov dword [esp + 0x224], eax
mov eax, dword [0x5ebd34]
mov dword [esp + 0x240], ecx
mov ecx, dword [str.futs]
mov dword [esp + 0x22c], edx
mov edx, dword [0x5ebd3c]
mov dword [esp + 0x230], eax
mov eax, dword [0x5ebd40]
mov dword [esp + 0x24c], ecx
add edi, 0x18
push edi
lea ecx, [esp + 0x218]
mov dword [esp + 0x248], edx
mov dword [esp + 0x24c], eax
call fcn.00557880
mov edx, dword [esp + 0x254]
push edx
mov edi, eax
push 0
push edi
mov dword [esp + 0x90], edi
call fcn.004727f0
fnstcw word [esp + 0x2c]
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
movzx edx, ax
movzx eax, word [esp + 0x2c]
mov dword [edi], edx
or eax, 0xc00
fld qword [esi + 0x278]
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], ecx
fldcw word [esp + 0x30]
add esp, 0xc
fistp qword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2d8]
mov ecx, dword [esi + 0x2dc]
fldcw word [esp + 0x20]
mov dword [edi + 8], eax
mov edx, dword [esp + 0x258]
mov eax, dword [esp + 0x84]
add edx, 0x18
xor edi, edi
add eax, 0xc
mov dword [esp + 0x50], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
lea esp, [esp]
test edi, edi
jl 0x4afb84
cmp edi, 3
jge 0x4afb84
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx + edi*4]
mov edx, dword [esp + 0x1c]
push eax
mov dword [edx], eax
mov eax, dword [esp + 0x18]
push ebx
push eax
call fcn.00473850
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + edi*4]
add dword [esp + 0x20], eax
add dword [esp + 0x28], 4
add edi, 1
add esp, 0xc
add ebx, eax
cmp edi, 3
jl 0x4ae950
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x214]
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.004aa680
mov ecx, dword [0x5ebd08]
mov edx, dword [0x5ebd0c]
mov eax, dword [0x5ebd10]
mov dword [esp + 0x224], ecx
mov ecx, dword [0x5ebd14]
mov dword [esp + 0x228], edx
mov edx, dword [0x5ebd18]
mov dword [esp + 0x230], ecx
mov ecx, dword [0x5ebd20]
mov dword [esp + 0x22c], eax
mov eax, dword [0x5ebd1c]
mov dword [esp + 0x240], edx
mov edx, dword [0x5ebd24]
mov dword [esp + 0x248], ecx
push 0x18
lea ecx, [esp + 0x218]
mov dword [esp + 0x248], eax
mov dword [esp + 0x250], edx
call fcn.00557880
mov edi, eax
mov eax, dword [esp + 0x254]
push eax
push 0
push edi
call fcn.004727f0
fnstcw word [esp + 0x2c]
mov eax, dword [esi + 0x2a8]
mov ecx, dword [esi + 0x2ac]
mov word [edi], ax
fld qword [esi + 0x278]
movzx eax, word [esp + 0x2c]
or eax, 0xc00
mov dword [esp + 0x30], eax
or eax, 0xffffffff
fldcw word [esp + 0x30]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 8], eax
add esp, 0xc
mov dword [esp + 0x50], ecx
fistp qword [esp + 0x24]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x214]
mov dword [edi + 4], edx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
fldcw word [esp + 0x28]
lea ecx, [esp + 0x3c]
call fcn.004aa680
lea ecx, [esp + 0x90]
mov byte [esp + 0x270], 4
call fcn.004aa240
jmp 0x4af490
mov ebx, dword [esp + 0x18]
push str.A_MPEG_L3
push ebx
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
je 0x4aeb2d
mov word [edi], 0x55
mov eax, 0xaa000080
mov ecx, 0x719b3800
mov edx, 0x55
mov dword [esp + 0x22c], eax
lea eax, [esp + 0x214]
mov word [esp + 0x100], 0
mov word [esp + 0x102], 0x10
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0x100]
mov dword [esp + 0x230], ecx
mov ecx, dword [esp + 0x3c]
push eax
mov dword [esp + 0x22c], edx
push ecx
jmp 0x4af487
push str.A_MPEG_L2
push ebx
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
je 0x4aeba1
mov word [edi], 0x50
mov eax, 0xaa000080
mov ecx, 0x719b3800
mov edx, 0x50
mov dword [esp + 0x22c], eax
lea eax, [esp + 0x214]
mov word [esp + 0x110], 0
mov word [esp + 0x112], 0x10
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x230], ecx
mov ecx, dword [esp + 0x3c]
push eax
mov dword [esp + 0x22c], edx
push ecx
jmp 0x4af487
lea edx, [esp + 0x18]
push str.A_AC3
push edx
call fcn.00408360
add esp, 8
test al, al
je 0x4aec06
mov word [edi], 0x2000
push 0x2000
lea ecx, [esp + 0x1f8]
call fcn.004a6320
mov ecx, dword [eax]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x214]
push eax
mov dword [esp + 0x234], edx
push ecx
jmp 0x4af487
lea edx, [esp + 0x18]
push str.A_DTS
push edx
call fcn.00408360
add esp, 8
test al, al
je 0x4aec2f
mov word [edi], 0x2001
push 0x2001
lea ecx, [esp + 0x1c8]
jmp 0x4aebc8
lea edx, [esp + 0x18]
push str.A_FLAC
push edx
call fcn.00408360
add esp, 8
test al, al
je 0x4aed0e
push 0xf1ac
lea ecx, [esp + 0x188]
mov word [edi], 0xf1ac
call fcn.004a6320
mov ecx, dword [eax]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x230], edx
mov eax, dword [esi + 0xe4]
mov word [edi + 0x10], ax
mov eax, dword [esi + 0xe4]
add eax, 0x12
push eax
lea ecx, [esp + 0x218]
call fcn.005578e0
mov ecx, dword [esi + 0xe4]
mov edx, dword [esi + 0xe0]
push ecx
add eax, 0x12
push edx
push eax
call fcn.00473850
mov ecx, dword [esp + 0x48]
add esp, 0xc
lea eax, [esp + 0x214]
push eax
push ecx
lea ecx, [esp + 0x3c]
call fcn.004aa680
mov edx, dword [0x5ebb28]
mov eax, dword [0x5ebb2c]
mov ecx, dword [0x5ebb30]
mov dword [esp + 0x224], edx
mov edx, dword [0x5ebb34]
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x230], edx
jmp 0x4aefc9
lea ecx, [esp + 0x18]
push str.A_TTA1
push ecx
call fcn.00408360
add esp, 8
test al, al
je 0x4aed66
mov word [edi], 0x77a1
push 0x77a1
lea ecx, [esp + 0x208]
call fcn.004a6320
mov edx, dword [eax]
mov dword [esp + 0x224], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x228], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x22c], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x230], eax
jmp 0x4af47a
lea eax, [esp + 0x18]
push str.A_MS_ACM
push eax
call fcn.00408360
add esp, 8
test al, al
je 0x4aedb5
mov eax, dword [esi + 0xe4]
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov ecx, dword [esi + 0xe0]
mov edi, eax
mov eax, dword [esi + 0xe4]
push eax
push ecx
push edi
call fcn.00473850
movzx ecx, word [edi]
add esp, 0xc
push ecx
lea ecx, [esp + 0x1a8]
jmp 0x4aed35
lea eax, [esp + 0x18]
push str.A_PCM_INT_LIT
push eax
call fcn.00408360
add esp, 8
test al, al
je 0x4aedde
mov word [edi], 1
push 1
lea ecx, [esp + 0x1e8]
jmp 0x4aebc8
lea edx, [esp + 0x18]
push str.A_PCM_FLOAT_IEEE
push edx
call fcn.00408360
add esp, 8
test al, al
je 0x4aee07
mov word [edi], 3
push 3
lea ecx, [esp + 0x168]
jmp 0x4aebc8
cmp dword [ebx - 0xc], 0
jl 0x4af490
push str.A_AAC_
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4aefe3
sub eax, ebx
jne 0x4aefe3
push 0xff
lea ecx, [esp + 0x178]
mov word [edi], 0xff
call fcn.004a6320
mov edx, dword [eax]
mov dword [esp + 0x224], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x228], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x22c], edx
mov eax, dword [eax + 0xc]
push 0x17
lea ecx, [esp + 0x218]
mov dword [esp + 0x234], eax
call fcn.005578e0
mov edi, eax
mov eax, dword [esp + 0x258]
mov dword [esp + 0x14], eax
add eax, 0x10
add edi, 0x12
mov word [eax], 2
cmp dword [ebx - 0xc], 0
mov dword [esp + 0x24], eax
jl 0x4ada59
push str._MAIN
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4aeebf
sub eax, ebx
test eax, eax
jle 0x4aeebf
xor ebx, ebx
jmp 0x4aef6a
cmp dword [ebx - 0xc], 0
jl 0x4ada59
push str._SBR
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4aeee9
sub eax, ebx
test eax, eax
jle 0x4aeee9
or ebx, 0xffffffff
jmp 0x4aef6a
cmp dword [ebx - 0xc], 0
jl 0x4ada59
push 0x59fc24
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4aef12
sub eax, ebx
test eax, eax
jle 0x4aef12
mov ebx, 1
jmp 0x4aef6a
cmp dword [ebx - 0xc], 0
jl 0x4ada59
push str._SSR
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4aef3b
sub eax, ebx
test eax, eax
jle 0x4aef3b
mov ebx, 2
jmp 0x4aef6a
cmp dword [ebx - 0xc], 0
jl 0x4ada59
push str._LTP
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4ada59
sub eax, ebx
test eax, eax
jle 0x4ada59
mov ebx, 3
mov eax, dword [esi + 0x2a8]
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x2ac]
push eax
mov eax, dword [edx + 4]
push eax
push ebx
push edi
mov dword [esp + 0x60], ecx
call fcn.00560f70
mov edx, dword [esp + 0x4c]
add esp, 0x10
lea ecx, [esp + 0x214]
push ecx
push edx
lea ecx, [esp + 0x3c]
movzx edi, ax
call fcn.004aa680
test ebx, ebx
jge 0x4af490
mov eax, dword [esp + 0x24]
mov word [eax], di
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
add ecx, ecx
add edx, edx
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
push 1
lea eax, [esp + 0x218]
push eax
push 0
lea ecx, [esp + 0x40]
call fcn.004aaf10
jmp 0x4af490
cmp dword [ebx - 0xc], 0
jl 0x4af490
push str.A_AAC
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4af08d
sub eax, ebx
jne 0x4af08d
cmp dword [esi + 0xe4], 0
jle 0x4af08d
push 0xff
lea ecx, [esp + 0x198]
mov word [edi], 0xff
call fcn.004a6320
mov ecx, dword [eax]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x230], edx
mov edi, dword [esi + 0xe4]
movzx eax, di
add eax, 0x12
push eax
lea ecx, [esp + 0x218]
call fcn.005578e0
mov word [eax + 0x10], di
mov ecx, dword [esi + 0xe4]
mov edx, dword [esi + 0xe0]
push ecx
push edx
add eax, 0x12
push eax
call fcn.00473850
add esp, 0xc
jmp 0x4af47a
cmp dword [ebx - 0xc], 0
jl 0x4af490
push str.A_REAL_
push ebx
call fcn.004744ea
add esp, 8
test eax, eax
je 0x4af490
sub eax, ebx
jne 0x4af490
cmp dword [ebx - 0xc], 0xb
jl 0x4af490
mov ecx, dword [ebx - 0xc]
cmp ecx, 7
jl 0x4afb89
cmp ecx, 8
mov al, byte [ebx + 7]
mov byte [esp + 0x20], al
jl 0x4afb89
cmp ecx, 9
mov dl, byte [ebx + 8]
jl 0x4afb89
cmp ecx, 0xa
mov al, byte [ebx + 9]
jl 0x4afb89
movsx ecx, byte [ebx + 0xa]
shl ecx, 8
movsx eax, al
or ecx, eax
movsx eax, byte [esp + 0x20]
shl ecx, 8
movsx edx, dl
or ecx, edx
shl ecx, 8
or ecx, eax
push ecx
lea ecx, [esp + 0x1b8]
call fcn.004a6320
mov ecx, dword [eax]
mov dword [esp + 0x224], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x228], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x22c], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x230], edx
mov dword [esp + 0x238], 1
movzx eax, word [esi + 0xe4]
add eax, 0x12
push eax
lea ecx, [esp + 0x218]
call fcn.005578e0
mov word [eax + 0x10], 0
jmp 0x4af06e
cmp eax, 0x11
jne 0x4af490
test ecx, ecx
jne 0x4af490
mov edi, dword [esp + 0x8c]
cmp edi, 1
jne 0x4af198
mov ecx, dword [esp + 0x68]
call fcn.004abf40
push edi
lea eax, [esp + 0x34]
push str.Subtitle__d
push eax
call fcn.00409fe0
add esp, 0xc
add edi, 1
push 1
lea ecx, [esp + 0x218]
mov dword [esp + 0x90], edi
call fcn.00557dc0
push str.S_TEXT_ASCII
push ebx
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
je 0x4af27b
mov ecx, dword [0x59dbd4]
mov edx, dword [0x59dbd8]
mov eax, dword [0x59dbdc]
mov dword [esp + 0x214], ecx
mov ecx, dword [0x59dbe0]
mov dword [esp + 0x218], edx
mov edx, dword [0x59b9b0]
mov dword [esp + 0x21c], eax
mov eax, dword [0x59b9b4]
mov dword [esp + 0x220], ecx
mov ecx, dword [0x59b9b8]
mov dword [esp + 0x224], edx
mov edx, dword [0x59b9bc]
mov dword [esp + 0x228], eax
mov eax, dword [0x59dea4]
mov dword [esp + 0x22c], ecx
mov ecx, dword [0x59dea8]
mov dword [esp + 0x230], edx
mov edx, dword [0x59deac]
mov dword [esp + 0x240], eax
mov eax, dword [0x59deb0]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x248], edx
mov dword [esp + 0x24c], eax
jmp 0x4af47a
mov eax, dword [0x5ebd58]
mov ecx, dword [0x5ebd5c]
mov edx, dword [0x5ebd60]
mov dword [esp + 0x214], eax
mov eax, dword [0x5ebd64]
mov dword [esp + 0x218], ecx
mov ecx, dword [0x5ebdc8]
mov dword [esp + 0x220], eax
mov eax, dword [0x5ebdd0]
mov dword [esp + 0x240], ecx
mov ecx, dword [0x5ebdd4]
mov dword [esp + 0x21c], edx
mov edx, dword [0x5ebdcc]
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x244], edx
mov eax, dword [esi + 0xe4]
add eax, 0x208
push eax
lea ecx, [esp + 0x218]
call fcn.00557880
mov edx, dword [esp + 0x254]
push edx
mov edi, eax
push 0
push edi
call fcn.004727f0
mov eax, dword [esi + 0xc4]
push 3
push eax
lea eax, [edi + 4]
push eax
call fcn.005693c0
mov eax, dword [esi + 0xc0]
push 0xff
push eax
lea ecx, [edi + 8]
push ecx
call fcn.00475051
mov dword [edi], 0x208
mov eax, dword [esi + 0xe4]
mov ecx, dword [esi + 0xe0]
mov edx, dword [esp + 0x27c]
push eax
push ecx
add edx, 0x208
push edx
call fcn.00473850
push str.S_TEXT_UTF8
push ebx
call fcn.0047472f
add esp, 0x38
test eax, eax
sete al
test al, al
je 0x4af379
mov eax, 0x5ebd68
jmp 0x4af43a
lea eax, [esp + 0x18]
push str.S_TEXT_SSA
push eax
call fcn.00408360
add esp, 8
test al, al
jne 0x4af435
lea ecx, [esp + 0x18]
push str.S_SSA
push ecx
call fcn.00408360
add esp, 8
test al, al
jne 0x4af435
lea edx, [esp + 0x18]
push str.S_TEXT_ASS
push edx
call fcn.00408360
add esp, 8
test al, al
jne 0x4af42e
lea eax, [esp + 0x18]
push str.S_ASS
push eax
call fcn.00408360
add esp, 8
test al, al
jne 0x4af42e
lea ecx, [esp + 0x18]
push str.S_TEXT_USF
push ecx
call fcn.00408360
add esp, 8
test al, al
jne 0x4af427
lea edx, [esp + 0x18]
push str.S_USF
push edx
call fcn.00408360
add esp, 8
test al, al
jne 0x4af427
lea eax, [esp + 0x18]
push str.S_VOBSUB
push eax
call fcn.00408360
add esp, 8
test al, al
mov eax, 0x5ebdb8
jne 0x4af43a
mov eax, 0x59b9b0
jmp 0x4af43a
mov eax, 0x5ebda8
jmp 0x4af43a
mov eax, 0x5ebd88
jmp 0x4af43a
mov eax, 0x5ebd78
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x224], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x228], edx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x224]
push 0x59b9b0
push eax
mov dword [esp + 0x234], ecx
mov dword [esp + 0x238], edx
call fcn.00409f40
add esp, 8
test eax, eax
jne 0x4af490
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x214]
push ecx
push edx
lea ecx, [esp + 0x3c]
call fcn.004aa680
cmp dword [esp + 0x3c], 0
je 0x4af8ac
mov ecx, dword [esi + 0xc0]
cmp dword [ecx - 0xc], 0
lea eax, [esi + 0xc0]
jne 0x4af4b7
mov dword [esp + 0x14], 0x5e8d68
jmp 0x4af4e0
push eax
lea edx, [esp + 0xe4]
push 0x59fb80
push edx
call fcn.0040f160
add esp, 0xc
mov eax, dword [eax]
or dword [esp + 0x48], 1
mov byte [esp + 0x270], 9
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0xc4]
cmp dword [eax - 0xc], 0
jne 0x4af4f3
mov ebx, 0x59fb70
jmp 0x4af516
push eax
lea ecx, [esp + 0xf0]
push ecx
call fcn.00560b70
add esp, 8
or dword [esp + 0x48], 2
mov ebx, dword [eax]
mov dword [esp + 0x270], 0xa
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0xe8]
push 0x59fb68
push eax
call fcn.0040f160
push 0x59fb64
push eax
lea ecx, [esp + 0xfc]
push ecx
mov dword [esp + 0x288], 0xb
call fcn.0040f080
add esp, 0x18
mov edi, eax
push ebx
lea ecx, [esp + 0xdc]
mov byte [esp + 0x274], 0xc
call fcn.0040a190
mov edx, dword [esp + 0x14]
push edx
push eax
lea eax, [esp + 0xe4]
push eax
mov byte [esp + 0x27c], 0xd
call fcn.0040f080
push edi
push eax
lea ecx, [esp + 0xe8]
push ecx
mov byte [esp + 0x288], 0xe
call fcn.00467732
add esp, 0x18
mov ecx, dword [eax]
mov edi, dword [esp + 0x30]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
mov byte [esp + 0x270], 0xf
je 0x4af5ff
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4af5f1
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4af5f1
push eax
call fcn.00409dc0
mov dword [esp + 0x28], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4af5e4
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x24]
add ecx, 0x10
mov dword [esp + 0x30], ecx
jmp 0x4af5ff
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.0040a080
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0xe
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4af62a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af655
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xd8]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af680
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xe8]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af6ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af6d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x48]
test bl, 2
mov dword [esp + 0x270], 9
je 0x4af714
mov eax, dword [esp + 0xec]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x48], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af714
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, 1
mov dword [esp + 0x270], 4
je 0x4af74e
mov eax, dword [esp + 0xe0]
and ebx, 0xfffffffe
add eax, 0xfffffff0
mov dword [esp + 0x48], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af74e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x208
call fcn.0044ff38
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov edi, dword [esp + 0x68]
mov byte [esp + 0x270], 0x10
je 0x4af7c0
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0x13c]
mov eax, dword [esi + 0x138]
mov ebx, dword [esi + 0x98]
mov dword [esp + 0x50], edx
lea edx, [esp + 0xf8]
push edx
lea edx, [edi + 0xfc]
push edx
mov edx, dword [esp + 0x38]
push edi
push edx
lea edx, [esp + 0x44]
push edx
push 0
push 0x64
push ecx
push eax
call fcn.004737e0
mov ecx, dword [esp + 0x38]
push edx
push eax
push ebx
call fcn.004ab6e0
mov ebx, eax
jmp 0x4af7c2
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esi + 0xc0]
cmp dword [eax - 0xc], 0
mov byte [esp + 0x270], 0x11
je 0x4af7f2
mov edx, dword [ebx + 0xa0]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [ebx + 0xa0]
push str.NAME
push ecx
call eax
mov ecx, dword [esi + 0xc4]
cmp dword [ecx - 0xc], 3
jne 0x4af85a
mov eax, ecx
push eax
lea ecx, [esp + 0xc4]
call fcn.00409c60
mov ecx, dword [eax]
mov edx, dword [ebx + 0xa0]
push ecx
lea eax, [ebx + 0xa0]
push 0x59fb58
push eax
mov eax, dword [edx + 0x24]
mov byte [esp + 0x27c], 0x12
call eax
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x11
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af85a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov eax, esp
mov dword [eax], ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp + 0x28], esp
mov dword [esp + 0x54], ecx
push eax
mov ecx, edi
mov dword [esp + 0x2c], 0
call fcn.004c4770
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
push eax
lea ecx, [edi + 0x304]
mov dword [esp + 0x54], edx
call fcn.004dfec0
lea ecx, [edi + 0x320]
lea edx, [esp + 0x88]
mov dword [eax], esi
mov eax, dword [ecx + 8]
push edx
push eax
call fcn.004b1890
lea ecx, [esp + 0x34]
mov byte [esp + 0x270], 3
call fcn.004ab080
lea ecx, [esp + 0x214]
mov byte [esp + 0x270], 2
call fcn.00557c30
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x270], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af8f9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x270], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4af924
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [esp + 0x70], 0
jne 0x4ad496
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
test ecx, ecx
jne 0x4ad470
xor esi, esi
mov ebx, dword [edi + 0x300]
mov dword [edi + 0x208], esi
mov dword [edi + 0x20c], esi
mov dword [edi + 0x210], esi
mov dword [edi + 0x214], esi
fld qword [ebx + 0x160]
mov ecx, dword [ebx + 0x148]
mov eax, dword [ebx + 0x14c]
mov dword [esp + 0xa4], ecx
mov ecx, eax
and eax, 0x7fffffff
mov dword [esp + 0xa8], eax
fild qword [esp + 0xa4]
and ecx, 0x80000000
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], esi
fild qword [esp + 0xa4]
fchs
faddp st(1)
fmulp st(1)
fdiv qword [0x59fb50]
call fcn.00472696
mov ecx, eax
mov dword [edi + 0x200], eax
mov dword [edi + 0x204], edx
mov dword [edi + 0x218], ecx
mov ecx, dword [edi + 0x50]
mov dword [edi + 0x21c], edx
mov ebx, dword [ebx + 0x188]
mov edx, dword [ecx + 0x24]
lea eax, [edi + 0x50]
push ebx
push str.TITL
push eax
call edx
mov eax, dword [edi + 0x300]
mov eax, dword [eax + 0x1f8]
cmp eax, esi
je 0x4afb47
nop
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4afb7a
mov ecx, eax
mov ecx, dword [ecx + 8]
mov ebx, dword [ecx]
test ebx, ebx
mov eax, dword [eax]
mov dword [esp + 0xc0], eax
je 0x4afb3d
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x4afb7a
mov eax, ebx
mov ebx, dword [ebx]
mov esi, dword [eax + 8]
lea ecx, [esp + 0x90]
mov dword [esp + 0x70], ebx
call fcn.004a9fb0
mov eax, dword [esi + 0x18]
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x98]
mov dword [esp + 0x278], 0x13
call fcn.00514000
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + 0x300]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push eax
mov eax, dword [esi + 0x10]
push eax
call edx
mov eax, dword [esp + 0x98]
mov ecx, dword [edi + 0x300]
cdq
push edx
push eax
mov eax, dword [esp + 0x9c]
push eax
call fcn.004c5690
test eax, eax
jl 0x4afb17
mov eax, dword [esi + 8]
push eax
lea ecx, [esp + 0x8c]
call fcn.00409c60
mov ebx, dword [esp + 0x98]
mov ecx, dword [eax]
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov esi, dword [edi + 0x64]
push 0
push ebx
mov ebx, dword [esp + 0x9c]
push ebx
push ecx
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esi + 0x18]
lea eax, [edi + 0x64]
push ecx
push eax
mov byte [esp + 0x28c], 0x14
call edx
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4afb13
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x70]
lea ecx, [esp + 0x90]
mov dword [esp + 0x270], 0xffffffff
call fcn.004a9ff0
test ebx, ebx
jne 0x4afa27
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x4afa00
xor esi, esi
mov eax, dword [edi + 0x300]
push esi
push esi
push esi
lea ecx, [eax + 0xe8]
call fcn.004b1d90
cmp eax, esi
mov dword [esp + 0x88], eax
je 0x4afe6d
call fcn.0045881f
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4afb93
push 0x80004005
call fcn.0040a460
call fcn.00457a83
push 0x80070057
call fcn.0040a460
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x14], ebx
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, 3
or eax, ecx
mov dword [esp + 0x270], 0x15
jge 0x4afbcf
push 3
lea ecx, [esp + 0x18]
call fcn.00408c20
mov ebx, dword [esp + 0x14]
push 3
push ebx
push 0x59
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
cmp eax, esi
jl 0x4afb89
cmp eax, dword [ebx - 8]
jg 0x4afb89
lea ecx, [esp + 0x6c]
push ebx
mov dword [ebx - 0xc], eax
push ecx
mov byte [ebx + eax], 0
call fcn.00560cf0
add esp, 8
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x274], 0x16
call fcn.0040c450
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x18
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4afc39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1c]
cmp dword [ecx - 0xc], 3
jge 0x4afc51
push 0x5e8540
lea ecx, [esp + 0x20]
call fcn.004082c0
mov edx, dword [esp + 0x88]
mov ebx, dword [edx + 0x90]
cmp ebx, esi
je 0x4afe1a
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x4afb7a
mov edx, dword [edi + 0x300]
mov eax, ebx
mov eax, dword [eax + 8]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebx]
push 0
push eax
push ecx
lea ecx, [edx + 0xe8]
mov dword [esp + 0x98], ebx
call fcn.004b1d90
test eax, eax
mov dword [esp + 0x70], eax
je 0x4afe12
call fcn.0045881f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4afb7a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x48], eax
mov byte [esp + 0x270], 0x19
call fcn.0045881f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4afb7a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x70]
mov ebx, dword [edx + 0x78]
test ebx, ebx
mov byte [esp + 0x270], 0x1a
je 0x4afd75
lea ecx, [ecx]
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x4afb7a
mov ecx, dword [esp + 0x68]
cmp dword [ecx - 0xc], 0
mov eax, ebx
mov ebx, dword [ebx]
mov esi, dword [eax + 8]
jne 0x4afd3a
push esi
lea ecx, [esp + 0x6c]
call fcn.0040a4f0
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x4afb7a
mov eax, dword [esi + 4]
push ecx
push eax
call fcn.0047472f
add esp, 8
test eax, eax
sete al
test al, al
je 0x4afd6d
push esi
lea ecx, [esp + 0x4c]
call fcn.0040a4f0
test ebx, ebx
jne 0x4afd10
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x48]
cmp dword [eax - 0xc], 0
lea eax, [esp + 0x48]
jne 0x4afd87
lea eax, [esp + 0x68]
mov eax, dword [eax]
mov ecx, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov ebx, dword [edi + 0x300]
mov esi, dword [edi + 0x7c]
push eax
push 0
push 0x64
push edx
push ecx
call fcn.004737e0
sub eax, dword [ebx + 0x228]
mov ecx, dword [esi + 0x18]
sbb edx, dword [ebx + 0x22c]
push edx
push eax
lea eax, [edi + 0x7c]
push eax
call ecx
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4afde3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4afe0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jne 0x4afc66
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x270], 0x15
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4afe42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x270], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4afe6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor ecx, ecx
cmp ecx, dword [edi + 0x1d0]
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
mov ecx, dword [esp + 0x268]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.004721e8
mov esp, ebp
pop ebp
ret 4