Function at 0x412190
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x482230]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x104], 0x26262424
mov ecx, dword [ebp + 0xc]
push 0x4705d4
push eax
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x15c], ecx
mov dword [ebp - 0x100], 0x392e2a63
mov dword [ebp - 0xfc], 0x63234d4c
mov dword [ebp - 0xf8], 0x26282423
mov dword [ebp - 0xf4], 0x2e2a2e2a
mov dword [ebp - 0xf0], 0x63333739
mov dword [ebp - 0xec], 0x3a512363
mov dword [ebp - 0xe8], 0x45282424
mov dword [ebp - 0xe4], 0x2a2e6326
mov dword [ebp - 0xe0], 0x24464b27
mov dword [ebp - 0xdc], 0x24242a3c
mov dword [ebp - 0xd8], 0x24242424
mov word [ebp - 0xd4], 0x2424
mov byte [ebp - 0x139], 0x29
mov byte [ebp - 0x13b], 0x2b
mov byte [ebp - 0x13d], 0x2d
mov byte [ebp - 0x13f], 0x2f
mov byte [ebp - 0x141], 0x30
mov byte [ebp - 0x143], 0x32
mov byte [ebp - 0x13a], 0x13
mov byte [ebp - 0x13c], 0x1b
mov byte [ebp - 0x13e], 0x22
mov byte [ebp - 0x140], 0x28
mov byte [ebp - 0x142], 0x2f
call fcn.004286b5
mov edx, eax
add esp, 8
mov dword [ebp - 0x178], edx
test edx, edx
jne 0x4122c6
push eax
push 0xb
push 0x2e
push dword [0x485d5c]
call fcn.00414f70
add esp, 0x10
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041aab7
mov esp, ebp
pop ebp
ret 8
mov cl, byte [ebx + 3]
lea eax, [ebp - 0x14]
push esi
push edi
push edx
shl cl, 4
sub cl, byte [ebx + 3]
push 1
shl cl, 2
push 0xe
push eax
mov dword [ebp - 0x14], 0x6468544d
mov dword [ebp - 0x10], 0x6000000
mov dword [ebp - 0xc], 0xb000100
mov byte [ebp - 8], 0
mov byte [ebp - 7], cl
call fcn.00428a31
movzx eax, byte [ebx + 3]
add esp, 0x10
movzx ecx, word [ebx]
imul ecx, eax
mov dword [ebp - 0xb4], 0x6b72544d
mov dword [ebp - 0xb0], 0xb000000
mov dword [ebp - 0xa5], 0
mov dword [ebp - 0xa1], 0
imul ecx, ecx, 0x19
mov dword [ebp - 0x9d], 0
mov dword [ebp - 0x99], 0
mov dword [ebp - 0x95], 0
mov dword [ebp - 0x91], 0
mov eax, ecx
mov dword [ebp - 0x8d], 0
cdq
and edx, 0xffff
mov dword [ebp - 0x89], 0
add eax, edx
mov dword [ebp - 0x85], 0
sar eax, 0x10
mov dword [ebp - 0x81], 0
mov dword [ebp - 0x7d], 0
mov dword [ebp - 0x79], 0
mov dword [ebp - 0x75], 0
mov dword [ebp - 0x71], 0
mov dword [ebp - 0x6d], 0
mov dword [ebp - 0x69], 0
mov dword [ebp - 0x65], 0
mov dword [ebp - 0x61], 0
mov dword [ebp - 0x5d], 0
mov dword [ebp - 0x59], 0
mov dword [ebp - 0x55], 0
mov dword [ebp - 0x51], 0
mov dword [ebp - 0x4d], 0
mov dword [ebp - 0x49], 0
mov dword [ebp - 0x45], 0
mov dword [ebp - 0x41], 0
mov dword [ebp - 0x3d], 0
mov dword [ebp - 0x39], 0
mov dword [ebp - 0x35], 0
mov dword [ebp - 0x31], 0
mov dword [ebp - 0x2d], 0
mov dword [ebp - 0x29], 0
mov dword [ebp - 0x25], 0
mov dword [ebp - 0x21], 0
mov dword [ebp - 0x1d], 0
mov dword [ebp - 0x19], 0
mov dword [ebp - 0xac], 0x351ff00
and eax, 0x800000ff
jns 0x412462
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0xa8], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
and eax, 0x800000ff
jns 0x412484
dec eax
or eax, 0xffffff00
inc eax
mov edx, 0x4835d0
mov byte [ebp - 0xa6], cl
mov byte [ebp - 0xa7], al
lea edi, [ebp - 0xa5]
mov dword [ebp - 0x12c], 0xf
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4124a8
sub edx, ecx
test dl, dl
je 0x4124ee
mov word [ebp - 0xa4], 0x3ff
xor ecx, ecx
mov al, byte [ecx + 0x4835d0]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0xa2], al
test al, al
jne 0x4124c0
movzx eax, dl
lea edi, [ebp - 0xa1]
mov byte [ebp - 0xa2], dl
add edi, eax
lea ecx, [eax + 0x13]
mov dword [ebp - 0x12c], ecx
mov ecx, 0x4836d0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4124f6
sub ecx, edx
test cl, cl
je 0x41253b
mov dword [edi], 0x2ff00
mov edx, 0x4836d0
add edi, 4
mov esi, edi
sub esi, edx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], al
test al, al
jne 0x412515
mov esi, dword [ebp - 0x12c]
movzx eax, cl
add esi, 4
add esi, eax
mov byte [edi - 1], cl
mov dword [ebp - 0x12c], esi
add edi, eax
mov dword [edi], 0x1ff00
lea edx, [edi + 4]
movups xmm0, xmmword [0x471264]
movups xmmword [edi + 4], xmm0
movq xmm0, qword [0x471274]
movq qword [edi + 0x14], xmm0
mov al, byte [0x47127c]
mov byte [edi + 0x1c], al
mov ecx, dword [0x483a38]
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x412570
mov byte [edi + 3], 0x18
mov dword [edi + 0x1c], 0x458ff00
mov al, byte [ebx + 2]
mov byte [edi + 0x20], al
mov word [edi + 0x21], 0x1802
mov byte [edi + 0x23], 8
add edi, 0x24
movzx ecx, byte [ebx + 2]
mov eax, ecx
shl eax, 4
sub eax, ecx
push edi
push 0
lea ecx, [eax*4 - 0x3c]
movzx eax, byte [ebx + 3]
imul ecx, eax
push ecx
call fcn.00413030
mov esi, eax
add edi, esi
mov word [edi], 0x51ff
mov byte [edi + 2], 3
movzx ecx, byte [ebx + 3]
movzx edx, word [ebx]
imul edx, ecx
imul ecx, edx, 0x3e8
mov eax, ecx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
and eax, 0x800000ff
jns 0x4125f7
dec eax
or eax, 0xffffff00
inc eax
mov byte [edi + 3], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
and eax, 0x800000ff
jns 0x412616
dec eax
or eax, 0xffffff00
inc eax
mov byte [edi + 4], al
and ecx, 0x800000ff
jns 0x412629
dec ecx
or ecx, 0xffffff00
inc ecx
mov ebx, dword [ebp - 0x178]
mov byte [edi + 5], cl
mov ecx, dword [ebp - 0x12c]
add ecx, 0x2e
mov dword [edi + 6], 0x2fff00
add ecx, esi
push ebx
push 1
push ecx
lea eax, [ecx - 8]
mov byte [ebp - 0xad], al
lea eax, [ebp - 0xb4]
push eax
call fcn.00428a31
push ebx
push 1
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0x6b72544d
push 0x1c
push eax
mov dword [ebp - 0xcc], 0x14000000
mov dword [ebp - 0xc8], 0xc03ff00
mov dword [ebp - 0xc4], 0x74737953
mov dword [ebp - 0xc0], 0x53206d65
mov dword [ebp - 0xbc], 0x70757465
mov dword [ebp - 0xb8], 0x2fff00
call fcn.00428a31
mov esi, dword [ebp - 0x174]
add esp, 0x2c
mov dword [ebp - 0x150], 0
xor ebx, ebx
lea eax, [esi + 0x12]
mov dword [ebp - 0x160], eax
mov al, bl
mov ecx, esi
push eax
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.0040d390
mov eax, dword [ebp - 0x15c]
imul eax, dword [ebp - 0x16c]
push 1
add eax, 0x20
shl eax, 5
push eax
call fcn.004486b4
add esp, 8
mov dword [ebp - 0x168], eax
cmp ebx, 8
mov dword [eax + 8], 0x703ff00
mov ebx, dword [ebp - 0x160]
lea ecx, [eax + 8]
mov dword [eax], 0x6b72544d
lea edx, [ecx + 3]
jge 0x412784
mov eax, dword [str.TRACK_]
mov edi, 0xb
mov dword [ecx + 4], eax
mov ax, word [0x471284]
mov word [ecx + 8], ax
movzx eax, byte [ebp - 0x158]
add al, 0x31
mov byte [ecx + 0xa], al
add ecx, 0xb
cmp dword [ebx + 6], 0
jne 0x4127bb
mov eax, dword [str._empty]
mov edi, 0x11
mov dword [ecx], eax
mov ax, word [0x47128c]
mov word [ecx + 4], ax
mov al, byte [0x47128e]
mov byte [ecx + 6], al
add ecx, 6
add byte [edx], 6
jmp 0x4127bb
mov eax, dword [0x471290]
mov edi, 0x21
mov dword [ecx + 4], eax
mov byte [edx], 4
mov dword [ecx + 8], 0x1501ff00
movups xmm0, xmmword [str._____EMPTY_TRACK_____]
movups xmmword [ecx + 0xc], xmm0
mov eax, dword [0x4712a8]
mov dword [ecx + 0x1c], eax
mov ax, word [0x4712ac]
mov word [ecx + 0x20], ax
add ecx, 0x21
mov edx, dword [ebp - 0x158]
mov byte [ecx], 0
mov word [ecx + 2], 0x79
mov byte [ecx + 4], 4
lea eax, [edx - 0x50]
mov word [ecx + 6], 0x6407
mov byte [ecx + 1], al
mov byte [ecx + 5], al
mov byte [ecx + 9], al
mov byte [ecx + 0xd], al
mov byte [ecx + 0x11], al
lea eax, [edx - 0x40]
mov byte [ecx + 0x15], al
mov eax, dword [ebp - 0x150]
mov byte [ecx + 8], 0
mov word [ecx + 0xa], 0x5b
mov byte [ecx + 0xc], 0
mov word [ecx + 0xe], 0x5d
mov byte [ecx + 0x10], 4
mov word [ecx + 0x12], 0x7f0b
mov byte [ecx + 0x14], 4
mov al, byte [eax + 0x4837d0]
cmp al, 0x80
jb 0x412820
mov al, byte [ebx]
mov byte [ecx + 0x16], al
add edi, 0x1b
movzx edx, word [ebx - 2]
lea ebx, [ecx + 0x18]
mov al, byte [ebp - 0x158]
add edx, 0x3c18
mov byte [ecx + 0x17], 4
sub al, 0x20
mov byte [ebx], al
mov byte [ebx + 1], dl
shr edx, 8
mov byte [ebx + 2], dl
add ebx, 3
movzx eax, byte [esi + 3]
xor edx, edx
movzx ecx, byte [esi + 2]
imul ecx, eax
mov dword [ebp - 0x14c], edi
mov byte [ebp - 0x12d], 0x64
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x170], 0xfffe7961
mov eax, ecx
mov dword [ebp - 0x180], edx
shl eax, 4
sub eax, ecx
mov ecx, 0x10
shl eax, 2
sub ecx, eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x12c], ecx
xor ecx, ecx
mov dword [ebp - 0x148], ecx
mov eax, dword [eax + 6]
mov edi, eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x154], edi
cmp dword [ebp - 0x15c], ecx
jle 0x412b3c
mov edx, dword [esi + 0xc]
mov eax, edx
test edi, edi
je 0x412aee
mov ecx, dword [edi + 8]
mov edx, eax
cmp ecx, eax
jge 0x412ae8
cmp ecx, dword [esi + 8]
jl 0x4128fb
cmp dword [ebp - 0x180], 0
jne 0x4128fb
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x180], 1
cmp byte [edi + 0xd], 0xff
je 0x412ade
mov al, byte [edi + 0xf]
mov edx, ecx
mov byte [ebp - 0x125], al
movzx eax, al
mov dword [ebp - 0x17c], ebx
cmp dword [ebp - 0x170], eax
je 0x4129bc
cmp byte [ebp - 0x125], 0xff
je 0x4129bc
mov edi, ecx
shl edi, 4
push ebx
push dword [ebp - 0x12c]
sub edi, ecx
shl edi, 2
push edi
call fcn.00413030
add ebx, eax
mov al, byte [ebp - 0x158]
sub al, 0x50
mov byte [ebx], al
lea esi, [ebx + 3]
mov eax, dword [ebp - 0x154]
mov byte [ebx + 1], 0xa
push esi
push edi
movzx eax, byte [eax + 0xf]
sub eax, 6
mov ecx, eax
shl ecx, 6
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
add al, 0x40
mov byte [ebx + 2], al
mov eax, dword [ebp - 0x154]
movzx ecx, byte [eax + 0xf]
mov eax, dword [eax + 8]
mov dword [ebp - 0x170], ecx
mov ecx, eax
shl ecx, 4
sub ecx, eax
shl ecx, 2
push ecx
mov dword [ebp - 0x164], ecx
call fcn.00413030
mov edi, dword [ebp - 0x154]
add esp, 0x18
lea ebx, [esi + eax]
jmp 0x4129e7
mov eax, edx
shl eax, 4
push ebx
push dword [ebp - 0x12c]
sub eax, edx
shl eax, 2
push eax
mov dword [ebp - 0x164], eax
call fcn.00413030
add esp, 0xc
add ebx, eax
cmp dword [ebp - 0x138], 0
jne 0x412a05
mov cl, byte [ebp - 0x158]
sub cl, 0x70
mov dword [ebp - 0x138], 1
mov byte [ebx], cl
inc ebx
mov byte [ebp - 0x125], cl
jmp 0x412a13
mov al, byte [ebp - 0x158]
sub al, 0x70
mov byte [ebp - 0x125], al
movzx eax, byte [edi + 0xd]
lea ecx, [ebx + 2]
add al, 0xc
mov dword [ebp - 0x154], ecx
mov byte [ebx], al
mov al, byte [edi + 0xe]
cmp al, 0xff
je 0x412a3d
shr al, 1
mov byte [ebx + 1], al
mov al, byte [edi + 0xe]
shr al, 1
mov byte [ebp - 0x12d], al
jmp 0x412a46
mov al, byte [ebp - 0x12d]
mov byte [ebx + 1], al
movzx esi, byte [edi + 0xc]
xor ecx, ecx
mov ebx, dword [ebp - 0x174]
mov eax, esi
mov edx, dword [ebp - 0x160]
sub eax, dword [ebx + 0xc]
add eax, dword [edi + 8]
cmovns ecx, eax
xor eax, eax
sub esi, ecx
add esi, dword [edi + 8]
mov ecx, esi
shl ecx, 4
sub ecx, esi
mov esi, dword [ebp - 0x154]
shl ecx, 2
cmp byte [edx + 1], al
mov edx, 0x14
push esi
push dword [ebp - 0x164]
cmovne eax, edx
sub ecx, eax
push ecx
mov dword [ebp - 0x12c], ecx
call fcn.00413030
add esp, 0xc
cmp dword [ebp - 0x138], 0
lea ebx, [esi + eax]
jne 0x412abc
mov al, byte [ebp - 0x125]
mov byte [ebx], al
inc ebx
mov dword [ebp - 0x138], 1
mov al, byte [edi + 0xd]
mov esi, dword [ebp - 0x174]
add al, 0xc
mov byte [ebx], al
mov byte [ebx + 1], 0
add ebx, 2
mov eax, ebx
sub eax, dword [ebp - 0x17c]
add dword [ebp - 0x14c], eax
mov edx, dword [esi + 0xc]
mov eax, edx
mov edi, dword [edi + 4]
jmp 0x412b24
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x15c]
dec eax
cmp ecx, eax
jge 0x412b3c
mov edi, dword [ebp - 0x134]
inc ecx
mov dword [ebp - 0x148], ecx
mov ecx, dword [esi + 8]
sub ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [ebp - 0x12c]
lea ecx, [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x12c], ecx
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x154], edi
cmp ecx, dword [ebp - 0x15c]
jl 0x4128c8
mov ecx, dword [ebp - 0x14c]
mov edi, dword [ebp - 0x168]
add ecx, 4
push dword [ebp - 0x178]
mov eax, ecx
mov dword [ebx], 0x2fff00
cdq
and edx, 0xffffff
mov byte [edi + 7], cl
add eax, edx
sar eax, 0x18
mov byte [edi + 4], al
mov eax, ecx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov byte [edi + 5], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [edi + 6], al
lea eax, [ecx + 8]
push 1
push eax
push edi
call fcn.00428a31
push edi
call fcn.0042825a
mov edi, dword [ebp - 0x150]
add esp, 0x14
add dword [ebp - 0x160], 0xc
inc edi
mov dword [ebp - 0x150], edi
mov ebx, edi
cmp edi, 8
jl 0x4126d2
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
imul ecx, eax
push 1
shl ecx, 0xc
push ecx
call fcn.004486b4
mov edi, 8
mov dword [ebp - 0x12c], eax
lea ebx, [esi + 0x78]
mov dword [ebp - 0x16c], 0
add esp, 8
mov dword [ebp - 0x134], ebx
mov edx, edi
nop word [eax + eax]
push edx
lea eax, [ebp - 0x18c]
mov ecx, esi
push eax
lea eax, [ebp - 0x184]
push eax
call fcn.0040d390
mov ecx, dword [ebp - 0x16c]
cmp dword [ebp - 0x184], ecx
mov edx, dword [ebx]
cmovg ecx, dword [ebp - 0x184]
mov dword [ebp - 0x16c], ecx
test edx, edx
je 0x412c7f
mov bl, byte [edx + 0xd]
cmp bl, 0xff
je 0x412c6c
mov bh, byte [edx + 0xe]
mov al, bh
dec al
cmp al, 0xfd
ja 0x412c6c
movzx eax, byte [esi + 2]
lea ecx, [edi - 8]
imul ecx, eax
movzx eax, byte [esi + 3]
imul ecx, eax
mov eax, dword [ebp - 0x12c]
shl ecx, 8
add ecx, dword [edx + 8]
mov byte [eax + ecx*2], bh
mov byte [eax + ecx*2 + 1], bl
mov edx, dword [edx + 4]
test edx, edx
jne 0x412c35
mov ecx, dword [ebp - 0x16c]
mov ebx, dword [ebp - 0x134]
inc edi
add ebx, 0xc
mov dword [ebp - 0x134], ebx
mov edx, edi
cmp edi, 0x10
jl 0x412c00
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x15c]
imul eax, ecx
push 1
add eax, 4
shl eax, 8
push eax
call fcn.004486b4
mov dword [eax + 8], 0x703ff00
mov ebx, 0xc
mov dword [ebp - 0x170], eax
add esp, 8
mov dword [ebp - 0x138], 0x1e
lea edi, [eax + 8]
mov dword [eax], 0x6b72544d
mov eax, dword [str.DRUMS]
mov dword [edi + 4], eax
mov ax, word [0x4712b4]
mov word [edi + 8], ax
mov byte [edi + 3], 5
mov dword [edi + 9], 0x121ff00
mov dword [edi + 0xd], 0x79b90400
mov dword [edi + 0x11], 0x7b90400
mov dword [edi + 0x15], 0x5bb90064
mov dword [edi + 0x19], 0xbb90450
mov byte [edi + 0x1d], 0x7f
add edi, 0x1e
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 2]
imul ecx, eax
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub ebx, eax
xor eax, eax
cmp eax, 0x10
jae 0x413028
mov byte [ebp + eax - 0x124], 0
mov byte [ebp + eax - 0x114], 0
inc eax
cmp eax, 0x10
jl 0x412d38
mov eax, dword [ebp - 0x168]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x164], ecx
add eax, 1
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x17c], eax
js 0x412f98
nop dword [eax]
mov eax, dword [esi + 0xc]
cmp edx, eax
jne 0x412db1
inc ecx
mov dword [ebp - 0x164], ecx
cmp ecx, dword [ebp - 0x15c]
jge 0x412f98
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
sub ecx, eax
mov eax, ecx
shl eax, 4
sub eax, ecx
lea ebx, [ebx + eax*4]
jmp 0x412f7f
mov dword [ebp - 0x168], edi
mov dl, 0x3c
xor ecx, ecx
nop dword [eax + eax]
cmp byte [ebp + ecx - 0x11c], 0
jbe 0x412df6
mov al, byte [ebp + ecx - 0x10c]
mov byte [edi], dl
xor dl, dl
mov byte [edi + 2], al
lea eax, [ecx + 8]
mov byte [edi + 1], 0x89
mov byte [edi + 3], 0
add edi, 4
cmp eax, 0x10
jae 0x413028
mov byte [ebp + ecx - 0x11c], dl
inc ecx
lea eax, [ecx + 8]
cmp eax, 0x10
jl 0x412dc0
test dl, dl
lea eax, [ebx + 0x3c]
mov edx, dword [ebp - 0x148]
cmovne eax, ebx
xor ebx, ebx
mov dword [ebp - 0x14c], eax
lea eax, [esi + 0x72]
mov dword [ebp - 0x150], eax
nop
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 2]
imul ecx, eax
mov eax, dword [ebp - 0x12c]
imul ecx, ebx
shl ecx, 8
add ecx, edx
add ecx, ecx
add eax, ecx
mov dword [ebp - 0x134], eax
mov al, byte [eax]
mov byte [ebp - 0x125], al
test al, al
je 0x412f57
mov esi, edx
shl esi, 4
push edi
push dword [ebp - 0x14c]
sub esi, edx
shl esi, 2
push esi
call fcn.00413030
add edi, eax
mov dword [ebp - 0x14c], esi
mov eax, dword [ebp - 0x150]
add esp, 0xc
movzx eax, byte [eax]
mov al, byte [ebp + eax - 0x104]
mov byte [ebp + ebx - 0x10c], al
cmp al, 0x63
jne 0x412f15
mov ecx, dword [ebp - 0x134]
mov al, byte [ebp - 0x139]
mov byte [ebp + ebx - 0x10c], al
mov cl, byte [ecx + 1]
cmp cl, byte [ebp - 0x13a]
jb 0x412ebf
mov al, byte [ebp - 0x13b]
mov byte [ebp + ebx - 0x10c], al
cmp cl, byte [ebp - 0x13c]
jb 0x412ed4
mov al, byte [ebp - 0x13d]
mov byte [ebp + ebx - 0x10c], al
cmp cl, byte [ebp - 0x13e]
jb 0x412ee9
mov al, byte [ebp - 0x13f]
mov byte [ebp + ebx - 0x10c], al
cmp cl, byte [ebp - 0x140]
jb 0x412efe
mov al, byte [ebp - 0x141]
mov byte [ebp + ebx - 0x10c], al
cmp cl, byte [ebp - 0x142]
jb 0x412f2f
mov al, byte [ebp - 0x143]
mov byte [ebp + ebx - 0x10c], al
jmp 0x412f2f
cmp al, 0x39
jne 0x412f2f
mov ecx, dword [ebp - 0x134]
cmp byte [ecx + 1], 0x24
jae 0x412f2f
mov byte [ebp + ebx - 0x10c], 0x31
mov al, 0x31
mov esi, dword [ebp - 0x174]
mov edx, dword [ebp - 0x148]
mov byte [edi], 0x99
mov byte [edi + 1], al
mov al, byte [ebp - 0x125]
shr al, 1
mov byte [edi + 2], al
add edi, 3
mov byte [ebp + ebx - 0x11c], 1
add dword [ebp - 0x150], 0xc
inc ebx
lea eax, [ebx + 8]
cmp eax, 0x10
jl 0x412e20
mov ebx, dword [ebp - 0x14c]
mov eax, edi
sub eax, dword [ebp - 0x168]
add dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x164]
inc edx
mov dword [ebp - 0x148], edx
cmp edx, dword [ebp - 0x17c]
jle 0x412d80
mov ecx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x170]
add ecx, 4
mov ebx, dword [ebp - 0x178]
mov eax, ecx
cdq
and edx, 0xffffff
mov dword [edi], 0x2fff00
add eax, edx
mov byte [esi + 7], cl
sar eax, 0x18
mov byte [esi + 4], al
mov eax, ecx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov byte [esi + 5], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
push ebx
mov byte [esi + 6], al
lea eax, [ecx + 8]
push 1
push eax
push esi
call fcn.00428a31
push esi
call fcn.0042825a
push dword [ebp - 0x12c]
call fcn.0042825a
push ebx
call fcn.00428373
mov ecx, dword [ebp - 4]
add esp, 0x1c
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.0041aab7
mov esp, ebp
pop ebp
ret 8
call fcn.0041abfe
int3