Function at 0x4609cd
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b8256
mov eax, dword fs:[0]
push eax
sub esp, 0x64c
mov eax, dword [0x4ed310]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov ebx, ecx
mov byte [ebx + 0x6b], 1
cmp byte [0x4ef345], 0
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x648], edi
je 0x46058f
mov eax, dword [0x4ef2a4]
mov ecx, dword [eax + 0x20]
mov edx, dword [ecx + 8]
add eax, 0x20
push str.CCore::BurnCompilation
push eax
call edx
mov eax, dword [0x4ef2a4]
mov ecx, dword [ebp - 0x634]
mov esi, dword [eax + 0x20]
add esp, 8
call fcn.00420d90
mov ecx, dword [ebp - 0x634]
push eax
call fcn.00420760
mov ecx, dword [eax + 0x24]
push ecx
mov ecx, dword [ebp - 0x634]
call fcn.00420760
mov edx, dword [eax + 0x20]
mov ecx, dword [ebp - 0x634]
push edx
call fcn.00420760
mov eax, dword [eax + 0x1c]
mov ecx, dword [0x4ef2a4]
mov edx, dword [esi + 8]
push eax
add ecx, 0x20
push str.____d__d__d___s
push ecx
call edx
mov edx, dword [ebp + 0x28]
push edx
mov edx, dword [ebp + 0x24]
push edx
mov edx, dword [0x4e92ec]
push edx
movzx edx, byte [0x4e92ea]
push edx
movzx edx, byte [0x4e92e9]
push edx
movzx edx, byte [0x4e92e8]
push edx
movzx edx, byte [0x4e92e7]
push edx
movzx edx, byte [0x4e92e6]
push edx
movzx edx, byte [0x4e92e5]
push edx
movzx edx, byte [0x4e92e4]
push edx
movzx edx, byte [0x4e8a0e]
mov eax, dword [0x4ef2a4]
mov ecx, dword [eax + 0x20]
push edx
movzx edx, byte [0x4e8a0d]
push edx
movzx edx, byte [0x4e8a0c]
push edx
movzx edx, byte [0x4e8a0b]
push edx
movzx edx, byte [0x4e8a0a]
add eax, 0x20
push edx
push str.__Eject___d__Simulate___d__BUP___d__Pad_tracks___d__Close___d__Overburn___d__Swab___d__Ignore_size___d__Immed___d__Audio_master___d__Forcespeed___d__VariRec__enabled____d__VariRec__value____d__Data_bytes__I64d.
push eax
mov eax, dword [ecx + 8]
call eax
add esp, 0x5c
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x2c]
push ecx
push edx
mov ecx, ebx
call fcn.0045c6c0
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
xor eax, eax
shrd ecx, edx, 0x14
mov dword [ebx + 0x70], eax
mov dword [ebx + 0x74], eax
lea eax, [ebx + 0x78]
shr edx, 0x14
mov dword [eax], ecx
lea esi, [ebx + 0x88]
push eax
mov ecx, esi
mov byte [ebx + 0x6a], 0
mov dword [eax + 4], edx
call fcn.0045c570
mov eax, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, eax
sar ecx, 2
mov dword [ebp - 0x640], 0
test ecx, ecx
je 0x460751
lea esp, [esp]
mov edx, dword [ebp - 0x640]
mov eax, dword [eax + edx*4]
push eax
lea ecx, [ebp - 0x630]
call fcn.004011b0
lea ecx, [ebp - 0x630]
push ecx
call fcn.00402310
add esp, 4
push 0
push 0x100000
push edx
push eax
call fcn.0049a570
lea ecx, [ebp - 0x630]
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x638], edx
call fcn.004016d0
mov eax, dword [esi + 4]
lea edx, [ebp - 0x63c]
cmp edx, eax
jae 0x4606b8
mov edx, dword [esi]
lea ecx, [ebp - 0x63c]
cmp edx, ecx
ja 0x4606b8
mov edi, ecx
mov ecx, dword [esi + 8]
sub edi, edx
sar edi, 3
cmp eax, ecx
jne 0x4606a3
sub eax, edx
sar eax, 3
cmp eax, 0x1ffffffe
ja 0x460947
sub ecx, edx
inc eax
sar ecx, 3
cmp eax, ecx
jbe 0x4606a3
mov edx, ecx
shr edx, 1
mov ebx, 0x1fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x46068d
xor ecx, ecx
jmp 0x46068f
add ecx, edx
cmp ecx, eax
jae 0x460695
mov ecx, eax
push ecx
mov ecx, esi
call fcn.0045c490
mov ebx, dword [ebp - 0x644]
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [edx + edi*8]
test eax, eax
je 0x460716
mov ecx, dword [edi]
mov dword [eax], ecx
mov edx, dword [edi + 4]
jmp 0x460713
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x4606fe
mov edx, dword [esi]
sub eax, edx
sar eax, 3
cmp eax, 0x1ffffffe
ja 0x460947
sub ecx, edx
inc eax
sar ecx, 3
cmp eax, ecx
jbe 0x4606fe
mov edx, ecx
shr edx, 1
mov edi, 0x1fffffff
sub edi, edx
cmp edi, ecx
jae 0x4606ee
xor ecx, ecx
jmp 0x4606f0
add ecx, edx
cmp ecx, eax
jae 0x4606f6
mov ecx, eax
push ecx
mov ecx, esi
call fcn.0045c490
mov eax, dword [esi + 4]
test eax, eax
je 0x460716
mov ecx, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x638]
mov dword [eax], ecx
mov dword [eax + 4], edx
add dword [esi + 4], 8
mov eax, dword [ebp - 0x63c]
add dword [ebx + 0x78], eax
mov ecx, dword [ebp - 0x638]
mov edx, dword [ebp - 0x648]
adc dword [ebx + 0x7c], ecx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x640]
sub edx, eax
inc ecx
sar edx, 2
mov dword [ebp - 0x640], ecx
cmp ecx, edx
jb 0x4605f0
mov ebx, dword [ebp + 0x28]
mov edi, dword [ebp - 0x634]
xor esi, esi
xor eax, eax
mov dword [ebp - 0x600], 7
mov dword [ebp - 0x604], esi
mov word [ebp - 0x614], ax
push esi
push 0x104
lea ecx, [ebp - 0x614]
mov dword [ebp - 4], esi
call fcn.00401fa0
cmp dword [ebp - 0x600], 8
mov eax, dword [ebp - 0x614]
mov dword [ebp - 0x604], esi
jae 0x4607a4
lea eax, [ebp - 0x614]
xor ecx, ecx
push 1
mov word [eax], cx
push 0x4d5438
lea ecx, [ebp - 0x614]
call fcn.00401bf0
mov eax, 0x4ef570
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4607c3
sub eax, edx
sar eax, 1
push eax
push 0x4ef570
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 0xc
push 0x4c5168
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 9
push str.___v_dev
lea ecx, [ebp - 0x614]
call fcn.00404c50
lea edx, [ebp - 0x630]
push edi
push edx
call fcn.00496430
add esp, 8
push 0xffffffffffffffff
push esi
push eax
lea ecx, [ebp - 0x614]
mov byte [ebp - 4], 1
call fcn.00401a20
cmp dword [ebp - 0x61c], 8
mov byte [ebp - 4], 0
jb 0x460846
mov eax, dword [ebp - 0x630]
push eax
call fcn.0049855c
add esp, 4
mov ecx, dword [0x4ef350]
push ecx
lea edx, [ebp - 0x90]
push 0x4c51e8
push edx
call fcn.00433830
lea eax, [ebp - 0x90]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x460870
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [0x4ef354]
cmp eax, 4
je 0x4608e2
push eax
lea ecx, [ebp - 0x90]
push 0x4c5430
push ecx
call fcn.00433830
lea eax, [ebp - 0x90]
add esp, 0xc
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4608c0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x90]
push edx
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 0x2a
mov ecx, edi
call fcn.0041f500
test al, al
je 0x46090a
cmp byte [0x4e8a0a], 0
je 0x46090a
push 7
push 0x4c51d8
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 0x16
mov ecx, edi
call fcn.0041f500
test al, al
je 0x460932
cmp byte [0x4e8a0b], 0
je 0x460932
push 7
push 0x4c51c8
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [0x4e8a14]
cmp eax, 5
ja case.default.0x460940
jmp dword [eax*4 + 0x460ea0]
push str.vector_T__too_long
call fcn.00497968
push 5
push 0x4c5424
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [ebp + 0x24]
shrd eax, ebx, 0xb
shr ebx, 0xb
push ebx
push eax
lea eax, [ebp - 0x90]
push str._tsize_I64ds
push eax
call fcn.00433830
lea eax, [ebp - 0x90]
add esp, 0x10
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x460990
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x90]
push ecx
jmp 0x4609d4
push 5
push 0x4c5418
jmp 0x4609d4
push 0xe
push 0x4c53f8
jmp 0x4609d4
push 8
push 0x4c53e4
jmp 0x4609d4
push 7
push 0x4c53d4
jmp 0x4609d4
push 8
push 0x4c53c0
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 0x4c53a4
lea edx, [ebp - 0x190]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, dword [ebp - 0x634]
push 0x1e
mov ecx, edi
xor bl, bl
call fcn.0041f500
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
test al, al
je 0x460a33
cmp byte [0x4e8a0c], 0
mov bl, 1
je 0x460a25
push 0x4c5390
lea eax, [ebp - 0x190]
push eax
jmp 0x460a31
push 0x4c5378
lea ecx, [ebp - 0x190]
push ecx
call esi
push 0x36
mov ecx, edi
call fcn.0041f500
test al, al
je 0x460a59
cmp byte [0x4e92e8], 0
je 0x460a59
push 0x4c535c
lea edx, [ebp - 0x190]
push edx
call esi
mov bl, 1
push 0x37
mov ecx, edi
call fcn.0041f500
test al, al
je 0x460a7f
cmp byte [0x4e92e9], 0
jne 0x460a7f
push 0x4c5340
lea eax, [ebp - 0x190]
push eax
call esi
mov bl, 1
push 0x38
mov ecx, edi
call fcn.0041f500
test al, al
je 0x460ac2
cmp byte [0x4e92ea], 0
je 0x460ac2
mov ecx, dword [0x4e92ec]
push ecx
lea edx, [ebp - 0x1d0]
push 0x4c5328
push edx
call fcn.00433830
add esp, 0xc
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0x190]
push ecx
call esi
jmp 0x460ac6
test bl, bl
je 0x460b08
lea edx, [ebp - 0x190]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
xor ecx, ecx
mov word [ebp + eax*2 - 0x192], cx
lea eax, [ebp - 0x190]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460ae6
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x190]
push edx
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e8a0d], 0
je 0x460b23
push 5
push 0x4c531c
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e8a0e], 0
jne 0x460b3e
push 7
push 0x4c530c
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e92e4], 0
je 0x460b59
push 0xa
push 0x4c52f4
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e92e5], 0
je 0x460b74
push 6
push 0x4c52e4
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e92e6], 0
je 0x460b8f
push 9
push 0x4c52d0
lea ecx, [ebp - 0x614]
call fcn.00404c50
cmp byte [0x4e92e7], 0
je 0x460baa
push 7
push 0x4c52c0
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [0x4e8a18]
cmp eax, 0xffffffff
je 0x460bf4
push eax
lea eax, [ebp - 0x90]
push 0x4c52ac
push eax
call fcn.00433830
lea eax, [ebp - 0x90]
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460bd2
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [ebp + 0x20]
sub eax, 0
je 0x460c08
dec eax
jne 0x460c1a
push 9
push str.__multi__
jmp 0x460c0f
push 8
push str.__data__
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov edi, dword [ebp - 0x648]
mov edx, dword [edi + 4]
sub edx, dword [edi]
sar edx, 2
test edx, edx
je 0x460c3e
push 7
push str.__audio
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, eax
sar ecx, 2
xor esi, esi
test ecx, ecx
je 0x460cc3
mov edi, edi
mov eax, dword [eax + esi*4]
lea edx, [ebp - 0x3f8]
push edx
push eax
call fcn.00434210
add esp, 8
push 2
push 0x4c5284
lea ecx, [ebp - 0x614]
call fcn.00404c50
lea eax, [ebp - 0x3f8]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460c80
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x3f8]
push ecx
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 1
push 0x4d5438
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov eax, dword [edi]
mov edx, dword [edi + 4]
sub edx, eax
inc esi
sar edx, 2
cmp esi, edx
jb 0x460c50
cmp dword [ebp + 0x1c], 0
je 0x460d18
push 0xb
push str._textfile_
lea ecx, [ebp - 0x614]
call fcn.00404c50
lea eax, [ebp - 0x3f8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x460ce4
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x3f8]
push eax
lea ecx, [ebp - 0x614]
call fcn.00404c50
push 1
push 0x4d5438
lea ecx, [ebp - 0x614]
call fcn.00404c50
mov ecx, dword [ebp - 0x604]
cmp ecx, 0x7ff
jbe 0x460e06
mov eax, dword [0x4efe18]
cmp eax, 5
jb 0x460daa
jne 0x460d3f
cmp dword [0x4efe1c], 1
jb 0x460daa
cmp ecx, 0x1fff
jbe 0x460e06
push 0x2000
push 0xe
call fcn.004966e0
add esp, 4
push eax
lea ecx, [ebp - 0x5f8]
push 0x100
push ecx
call fcn.004342c0
add esp, 0x10
push 0x10
push 0
call fcn.004966e0
add esp, 4
push eax
lea edx, [ebp - 0x5f8]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [ebp - 0x600], 8
jb 0x460e02
mov eax, dword [ebp - 0x614]
push eax
call fcn.0049855c
add esp, 4
xor al, al
jmp 0x460e80
push 0x800
push 0xe
call fcn.004966e0
add esp, 4
push eax
lea ecx, [ebp - 0x5f8]
push 0x100
push ecx
call fcn.004342c0
add esp, 0x10
push 0x10
push 0
call fcn.004966e0
add esp, 4
push eax
lea edx, [ebp - 0x5f8]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp dword [ebp - 0x600], 8
jb 0x460e02
mov eax, dword [ebp - 0x614]
push eax
call fcn.0049855c
add esp, 4
xor al, al
jmp 0x460e80
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x644]
lea eax, [ebp - 0x64c]
push eax
push 0
mov dword [ebp - 0x654], ecx
lea ecx, [ebp - 0x658]
push ecx
push 0x45bf90
push 0
push 0
mov dword [ebp - 0x658], esi
mov dword [ebp - 0x650], edx
mov dword [ebp - 0x64c], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
lea edx, [ebp - 0x614]
push edx
mov ecx, esi
call fcn.0045d640
cmp dword [ebp - 0x600], 8
mov bl, al
jb 0x460e7e
mov eax, dword [ebp - 0x614]
push eax
call fcn.0049855c
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00499155
mov esp, ebp
pop ebp
ret 0x28