Function at 0x511c0a
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov eax, 0xe328
lea ebp, [esp - 0x6c]
call fcn.00521447
mov eax, dword [ebp + 0x74]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [ebp + 0x60], ecx
je 0x512dd5
cmp byte [eax], bl
je 0x512dd5
mov eax, dword [0x46868c]
cmp eax, ebx
mov dword [ebp + 4], eax
jne 0x511c4b
mov eax, dword [ecx + reloc.WINMM.dll_midiStreamOut]
mov dword [0x468040], eax
xor eax, eax
mov byte [ebp - 0xa2b8], bl
mov ecx, 0x1000
lea edi, reloc.WINMM.dll_midiStreamOut
rep stosd dword es:[edi], eax
push 0x4585d8
push dword [ebp + 0x74]
lea eax, reloc.WINMM.dll_midiStreamOut
lea esi, reloc.WINMM.dll_midiStreamOut
lea ecx, reloc.WINMM.dll_midiStreamOut
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x64], eax
mov dword [ebp + 0x30], esi
call fcn.00519b69
test eax, eax
je 0x511ca5
push ebx
fldz
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45c284
jmp 0x512dcd
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45c270
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519f41
test eax, eax
jne 0x511ccf
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], bl
jmp 0x511d66
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45c260
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519f41
test eax, eax
jne 0x511cf7
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], 1
jmp 0x511d66
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x459654
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519f41
test eax, eax
jne 0x511d1e
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], bl
jmp 0x511d48
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x68]
push eax
push 0x45964c
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519f41
test eax, eax
jne 0x512db1
mov edi, dword [ebp + 0x60]
mov byte [edi + 0x4b1], 1
mov cl, byte [ebp + 0x34]
add cl, 0x40
jne 0x511d52
mov cl, 0x40
xor edx, edx
cmp dword [ebp + 0x34], ebx
jbe 0x511d66
mov eax, dword [ebp + 0x68]
add eax, edx
sub byte [eax], cl
inc edx
cmp edx, dword [ebp + 0x34]
jb 0x511d59
mov eax, dword [ebp + 0x68]
inc dword [0x46868c]
or dword [ebp + 0x14], 0xffffffff
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 4]
mov dword [edi + 0x48], eax
mov eax, 0x4000
cmp dword [ebp + 0x34], eax
mov byte [ebp + 0x3f], bl
mov byte [ebp + 0x49], bl
mov byte [ebp + 0x46], bl
jg 0x511d92
mov eax, dword [ebp + 0x34]
lea ecx, [ebp + 0x20]
push ecx
push ebx
push eax
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
mov ecx, edi
call fcn.005198b2
push 2
mov dword [ebp + 0x58], eax
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x45c25c
push eax
call fcn.00521717
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x77], al
je 0x511dd3
mov byte [ebp - 0x62b4], bl
mov dword [ebp + 0x58], ebx
cmp dword [ebp + 0x58], reloc.WINMM.dll_midiStreamOut
je 0x512d55
mov eax, dword [ebp + 0x14]
push 0xc
push 0x45b430
push dword [ebp + 0x64]
inc eax
mov dword [edi + 0x4c], eax
mov dword [edi + reloc.WINMM.dll_midiStreamOut], ebx
call fcn.0050caab
add esp, 0xc
test eax, eax
jne 0x511e12
push dword [ebp + 0x64]
mov ecx, edi
call fcn.00512e65
test eax, eax
je 0x512d7f
mov byte [ebp + 8], bl
mov dword [ebp + 0x54], ebx
mov eax, dword [ebp + 0x34]
sub eax, dword [ebp + 0x20]
inc dword [ebp + 0x14]
add eax, dword [ebp + 0x68]
mov ecx, 0x4000
cmp eax, ecx
jle 0x511e2f
mov eax, ecx
lea ecx, [ebp + 0x20]
push ecx
push dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
push eax
push esi
call fcn.005198b2
mov edi, eax
cmp edi, ebx
mov dword [ebp + 0x1c], edi
je 0x511fb0
cmp edi, reloc.WINMM.dll_midiStreamOut
je 0x511fb0
cmp byte [ebp + 0x77], bl
je 0x511f86
push 2
push 0x45c258
push esi
call fcn.00521717
add esp, 0xc
test eax, eax
jne 0x511e18
dec edi
dec edi
lea eax, [edi + 1]
push eax
lea eax, [esi + 2]
push eax
push esi
mov byte [ebp + 0x77], bl
call fcn.00521097
push edi
push esi
call fcn.004d4e01
add esp, 0x14
cmp byte [esi], bl
mov edi, eax
mov dword [ebp + 0x1c], edi
je 0x511e18
cmp dword [ebp + 0x54], ebx
jne 0x5122c0
cmp edi, reloc.WINMM.dll_midiStreamOut
je 0x512020
cmp byte [esi], 0x28
jne 0x512020
lea eax, [esi + 1]
cmp byte [eax], 0x3a
je 0x512020
cmp byte [edi + esi - 1], 0x3a
je 0x512020
mov cl, byte [0x465c30]
push eax
mov dword [ebp + 0x54], 1
mov byte [ebp + 8], 1
mov dword [ebp + 0x18], ebx
mov byte [ebp + 0x3c], cl
mov byte [ebp + 0x39], 1
mov byte [ebp + 0x3a], bl
mov byte [ebp + 0x3e], bl
mov byte [ebp + 0x3d], 1
mov byte [ebp - 0x18], 0xa
mov byte [ebp - 0x17], bl
mov dword [ebp + 0x24], 1
call fcn.004ccc79
mov edi, eax
cmp byte [edi], bl
pop ecx
je 0x511e18
push 0x459be0
push edi
call fcn.0050418c
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x511f31
push edi
call fcn.00520ea7
mov esi, eax
pop ecx
add esi, edi
mov al, byte [esi]
push 4
push 0x45c250
push edi
mov byte [ebp + 0x4e], al
mov byte [esi], bl
call fcn.0050caab
add esp, 0xc
test eax, eax
jne 0x512233
push 0x10
add edi, 4
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.00503ed0
xor eax, eax
mov al, byte [0x46308e]
push 1
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00502ed7
lea eax, [ebp - 0x18]
push eax
call fcn.00520ea7
add esp, 0x1c
mov dword [ebp + 0x24], eax
jmp 0x5122a2
cmp dword [ebp + 0x54], ebx
jne 0x5122c0
push 2
push 0x45c25c
push esi
call fcn.00521717
add esp, 0xc
test eax, eax
jne 0x511ea6
mov byte [ebp + 0x77], 1
jmp 0x511e18
cmp byte [ebp + 0x77], bl
je 0x511e9d
cmp edi, reloc.WINMM.dll_midiStreamOut
jne 0x511e18
cmp dword [ebp + 0x58], ebx
je 0x512b17
cmp byte [ebp - 0xa2b8], bl
mov esi, dword [ebp + 0x60]
je 0x51246a
mov eax, dword [ebp + 0x10]
mov edi, dword [esi + 0x4c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0x64]
cmp byte [eax], 0x7b
je 0x51241f
cmp byte [ebp + 0x3b], bl
jne 0x51241f
push ebx
push ebx
push ebx
push ebx
push ebx
push 3
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
mov ecx, esi
call fcn.0051376e
test eax, eax
je 0x512d7f
mov dword [esi + reloc.WINMM.dll_midiStreamOut], ebx
jmp 0x512461
cmp edi, reloc.WINMM.dll_midiStreamOut
mov dword [ebp + 0x54], ebx
je 0x511fc2
cmp edi, ebx
je 0x511e18
cmp byte [edi + esi - 1], 0x3a
jne 0x51203c
cmp byte [esi], 0x2c
jne 0x511fc2
movsx eax, byte [esi]
push eax
call fcn.0050cef6
cmp eax, 0x41
pop ecx
je 0x5121a4
cmp eax, 0x4f
je 0x51218b
mov cl, byte [esi]
cmp cl, 0x3a
je 0x512069
cmp cl, 0x2b
je 0x512069
cmp cl, 0x2d
jne 0x512072
cmp byte [esi + 1], cl
je 0x511fc2
cmp cl, 0x2e
je 0x51207c
cmp cl, 0x3f
jne 0x512093
mov al, byte [esi + 1]
cmp al, 0x20
je 0x512093
cmp al, 9
je 0x512093
cmp al, 0xa0
je 0x512093
cmp al, 0x3d
jne 0x511fc2
movsx eax, cl
push eax
push 0x45c23c
call fcn.00520fd7
test eax, eax
pop ecx
pop ecx
je 0x511fc2
push 0x45bea0
push esi
call fcn.00520f37
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x5c], eax
je 0x5121f3
cmp byte [esi], 0x3a
jne 0x51210c
lea edi, [esi + 1]
jmp 0x5120f8
cmp al, 0x3a
je 0x511fc2
movsx eax, al
push eax
call fcn.00507235
test eax, eax
pop ecx
jne 0x5120f7
movsx eax, byte [edi]
push eax
push 0x45c234
call fcn.00520fd7
test eax, eax
pop ecx
pop ecx
je 0x512106
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x5120cd
cmp al, 0x3a
je 0x511fc2
mov eax, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x1c]
cmp byte [esi], 0x2c
jne 0x512156
lea eax, [esi + 1]
push eax
call fcn.004ccc79
push 2
push 0x45bea0
push eax
mov dword [ebp + 0x5c], eax
call fcn.00521717
add esp, 0x10
test eax, eax
je 0x511fc2
mov eax, dword [ebp + 0x5c]
push 3
dec eax
push 0x459b44
push eax
call fcn.00521717
add esp, 0xc
test eax, eax
je 0x511fc2
jmp 0x5121f3
cmp esi, eax
mov ecx, esi
jae 0x512166
cmp byte [ecx], 0x22
je 0x512166
inc ecx
cmp ecx, eax
jb 0x51215c
cmp ecx, eax
je 0x511fc2
add eax, 2
mov cl, byte [eax]
cmp cl, bl
je 0x511fc2
cmp cl, 0x22
je 0x512187
inc eax
mov cl, byte [eax]
cmp cl, bl
jne 0x51217b
cmp byte [eax], bl
jmp 0x51214b
movsx eax, byte [esi + 1]
push eax
call fcn.0050cef6
cmp eax, 0x52
pop ecx
jne 0x511fc2
lea eax, [esi + 2]
jmp 0x5121bf
push 3
push 0x45bee8
push esi
call fcn.0050caab
add esp, 0xc
test eax, eax
jne 0x511fc2
lea eax, [esi + 3]
mov cl, byte [eax]
cmp cl, 0x20
je 0x5121d4
cmp cl, 9
je 0x5121d4
cmp cl, 0xa0
jne 0x511fc2
push eax
call fcn.004ccc79
movsx eax, byte [eax]
push eax
push 0x45c228
call fcn.00520fd7
add esp, 0xc
test eax, eax
jne 0x511fc2
mov eax, dword [ebp + 0x58]
lea ecx, [edi + eax]
cmp ecx, 0x4000
jae 0x512cdd
cmp byte [esi], 0x2c
je 0x512215
mov ecx, dword [ebp + 0x64]
mov byte [eax + ecx], 0x20
inc eax
mov dword [ebp + 0x58], eax
lea eax, [edi + 1]
push eax
push esi
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x58]
add eax, ecx
push eax
call fcn.005208a7
add esp, 0xc
add dword [ebp + 0x58], edi
jmp 0x511e18
push 5
push 0x45c220
push edi
call fcn.0050caab
add esp, 0xc
test eax, eax
jne 0x512251
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x3c]
jmp 0x5122a2
push 5
push 0x45c218
push edi
call fcn.0050caab
add esp, 0xc
test eax, eax
jne 0x51229c
cmp byte [edi + 5], 0x30
setne byte [ebp + 0x39]
jmp 0x5122a2
cmp al, 0x25
je 0x512297
cmp al, 0x2c
je 0x512292
cmp al, 0x43
je 0x512283
cmp al, 0x60
je 0x51228c
cmp al, 0x63
jne 0x51229b
mov dword [ebp + 0x54], 2
jmp 0x51229b
mov byte [ebp + 0x3a], 1
jmp 0x51229b
mov byte [ebp + 0x3d], bl
jmp 0x51229b
mov byte [ebp + 0x3e], 1
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x51226f
mov al, byte [ebp + 0x4e]
push esi
mov byte [esi], al
call fcn.004ccc79
mov edi, eax
cmp byte [edi], bl
pop ecx
jne 0x511f13
mov esi, dword [ebp + 0x30]
jmp 0x511e18
cmp edi, reloc.WINMM.dll_midiStreamOut
je 0x512d46
cmp edi, 0xfffffffe
je 0x511e18
cmp byte [esi], 0x29
jne 0x5122f1
lea eax, [esi + 1]
push 0xffffffffffffffff
push esi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x5c], eax
call fcn.004d4e50
mov edi, eax
pop ecx
dec edi
jmp 0x5123c6
cmp byte [ebp + 0x39], bl
mov dword [ebp + 0x5c], esi
je 0x512304
push edi
push esi
call fcn.004d4e50
pop ecx
pop ecx
mov edi, eax
cmp byte [ebp + 0x3c], bl
je 0x512314
push edi
push esi
call fcn.004d4e01
pop ecx
pop ecx
mov edi, eax
cmp byte [ebp + 0x3a], bl
mov dword [ebp + 0x50], ebx
je 0x512349
mov al, byte [0x46308e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x44], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
call fcn.004e589c
add esp, 0x20
mov dword [ebp + 0x50], eax
cmp byte [ebp + 0x3e], bl
je 0x512381
mov al, byte [0x46308d]
mov cl, byte [0x46308e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
mov byte [ebp + 0x44], cl
call fcn.004e589c
add esp, 0x20
add dword [ebp + 0x50], eax
cmp byte [ebp + 0x3d], bl
je 0x5123b9
mov al, byte [0x46308c]
mov cl, byte [0x46308e]
push ebx
push ebx
push 0x4001
push 0xffffffffffffffff
mov byte [ebp + 0x48], al
mov byte [ebp + 0x45], al
push 1
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x48]
push eax
push esi
mov byte [ebp + 0x44], cl
call fcn.004e589c
add esp, 0x20
add dword [ebp + 0x50], eax
cmp dword [ebp + 0x50], ebx
je 0x5123c7
push esi
call fcn.00520ea7
mov edi, eax
pop ecx
mov eax, dword [ebp + 0x24]
lea ecx, [eax + edi]
add ecx, dword [ebp + 0x58]
cmp ecx, 0x4001
jae 0x512d50
inc dword [ebp + 0x18]
cmp dword [ebp + 0x18], 1
jle 0x51240b
cmp eax, ebx
je 0x51240b
cmp dword [ebp + 0x5c], esi
jne 0x51240b
mov ecx, dword [ebp + 0x64]
inc eax
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x58]
add eax, ecx
push eax
call fcn.005208a7
mov eax, dword [ebp + 0x24]
add esp, 0xc
add dword [ebp + 0x58], eax
cmp edi, ebx
je 0x511e18
lea eax, [edi + 1]
push eax
push dword [ebp + 0x5c]
jmp 0x51221a
cmp dword [0x4651cc], ebx
mov ecx, esi
jne 0x512cf0
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
call fcn.00517b5d
test eax, eax
je 0x512d7f
cmp byte [ebp + 0x3b], bl
je 0x512461
push ebx
push ebx
push ebx
push 0x6b
mov ecx, esi
call fcn.00514ca3
test eax, eax
je 0x512d7f
mov dword [esi + 0x4c], edi
mov byte [ebp - 0xa2b8], bl
lea eax, [ebp + 0x3b]
push eax
push dword [ebp + 0x64]
call fcn.00512de1
test al, al
pop ecx
pop ecx
je 0x512498
push dword [ebp + 0x64]
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
call fcn.00520c77
mov eax, dword [esi + 0x4c]
pop ecx
pop ecx
mov dword [ebp + 0x10], eax
jmp 0x512b17
mov edx, dword [ebp + 0x64]
cmp byte [edx], 0x3a
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x5c], ebx
jne 0x51259a
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, bl
je 0x51259a
cmp cl, 0x3a
je 0x5124db
push 0x3a
push eax
mov dword [ebp + 0x28], eax
call fcn.00520fd7
cmp eax, ebx
pop ecx
pop ecx
jne 0x5124d8
mov dword [ebp + 0x54], ebx
jmp 0x51259a
inc eax
jmp 0x5124e6
lea eax, [edx + 2]
cmp byte [eax], bl
je 0x51259a
cmp eax, ebx
mov dword [ebp + 0x54], eax
je 0x51259a
mov esi, eax
mov al, byte [esi]
cmp al, bl
je 0x51258d
cmp al, byte [0x46308e]
je 0x512510
cmp al, 0x3a
je 0x512510
inc esi
mov al, byte [esi]
cmp al, bl
jne 0x5124fd
mov al, byte [esi]
cmp al, bl
je 0x51258d
cmp al, 0x3a
lea edi, [esi + 1]
jne 0x512526
cmp byte [edi], al
jne 0x512587
mov dword [ebp + 0x5c], esi
jmp 0x512585
movsx eax, byte [edi]
sub eax, 0x61
je 0x512566
dec eax
je 0x512561
sub eax, 4
je 0x51255c
sub eax, 8
je 0x512557
sub eax, 4
je 0x512552
dec eax
dec eax
je 0x51254d
dec eax
dec eax
jne 0x512569
mov byte [edi], 0xb
jmp 0x512569
mov byte [edi], 9
jmp 0x512569
mov byte [edi], 0xd
jmp 0x512569
mov byte [edi], 0xa
jmp 0x512569
mov byte [edi], 0xc
jmp 0x512569
mov byte [edi], 8
jmp 0x512569
mov byte [edi], 7
push edi
call fcn.00520ea7
inc eax
push eax
push edi
push esi
call fcn.00521097
add esp, 0x10
cmp byte [esi], 0x3a
jne 0x512587
cmp byte [edi], 0x3a
jne 0x512587
mov esi, edi
inc esi
jmp 0x5124f3
cmp dword [ebp + 0x5c], ebx
jne 0x512595
mov dword [ebp + 0x54], ebx
cmp dword [ebp + 0x54], ebx
jne 0x5125f3
mov esi, dword [ebp + 0x64]
push 0x45bea0
push esi
call fcn.00520f37
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x5c], eax
je 0x5128e0
cmp eax, esi
jne 0x5125c3
cmp byte [eax + 2], 0x3a
jne 0x5125c3
inc eax
mov dword [ebp + 0x5c], eax
push eax
push esi
call fcn.005040d8
pop ecx
pop ecx
mov edi, eax
mov al, byte [edi]
push ebx
push ebx
push esi
mov byte [ebp + 0x4e], al
mov byte [edi], bl
call fcn.004ccc79
pop ecx
push eax
call fcn.004d9774
add esp, 0xc
test eax, eax
jne 0x5125ee
mov dword [ebp + 0x5c], ebx
mov al, byte [ebp + 0x4e]
mov byte [edi], al
cmp dword [ebp + 0x5c], ebx
je 0x5128e0
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x5c], eax
jbe 0x5128e0
cmp dword [0x4651cc], ebx
jne 0x512cfe
mov eax, dword [ebp + 0x60]
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x512627
cmp byte [eax], 0x1b
je 0x512d08
mov eax, dword [ebp + 0x5c]
add dword [ebp + 0x5c], 2
cmp dword [ebp + 0x54], ebx
mov edi, dword [ebp + 0x5c]
mov byte [eax], bl
jne 0x5127af
push 0xffffffffffffffff
push edi
call fcn.004d4e01
push 0xffffffffffffffff
push dword [ebp + 0x64]
call fcn.004d4e50
add esp, 0x10
cmp byte [edi], bl
mov dword [ebp + 0x5c], edi
je 0x5127af
push ebx
push ebx
push dword [ebp + 0x64]
call fcn.004d9aab
mov esi, dword [0x45847c]
add esp, 0xc
push ebx
mov dword [ebp + 0x50], eax
call esi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x50]
call fcn.004de3ad
add esp, 0x14
cmp al, bl
mov byte [ebp + 0xc], al
je 0x5127af
cmp byte [edi + 1], bl
je 0x5126bb
push ebx
push ebx
push edi
call fcn.004d9aab
add esp, 0xc
push ebx
mov dword [ebp + 0x5c], eax
call esi
push eax
push 1
push ebx
push ebx
push dword [ebp + 0x5c]
call fcn.004de3ad
add esp, 0x14
mov byte [ebp + 0x3f], al
jmp 0x5126bf
mov byte [ebp + 0x3f], 0xff
cmp byte [ebp + 0x3f], bl
je 0x5127af
push dword [ebp + 0x3f]
call fcn.0050f6e7
push dword [ebp + 0xc]
mov byte [ebp + 0x4f], al
call fcn.0050f6e7
test al, al
pop ecx
pop ecx
jne 0x5126ea
cmp byte [ebp + 0x4f], bl
mov byte [ebp + 0x43], 1
jne 0x5126ed
mov byte [ebp + 0x43], bl
mov esi, dword [ebp + 0x50]
push esi
call fcn.00520ea7
cmp eax, 1
pop ecx
jne 0x512710
xor eax, eax
mov al, byte [esi]
push eax
call dword [0x458490]
test eax, eax
mov eax, 0x45c214
jne 0x512715
mov eax, 0x4585d8
push dword [ebp + 0x64]
push eax
push 0x45c20c
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x20
push eax
call fcn.004d4eb6
push 0x20
push dword [ebp + 0x5c]
lea eax, [ebp - 0x38]
push eax
call fcn.00503ed0
push 8
lea eax, [ebp - 8]
push edi
push eax
call fcn.00503ed0
mov eax, dword [ebp + 0x5c]
sub eax, edi
add esp, 0x2c
cmp eax, 8
jae 0x512757
mov byte [ebp + eax - 8], bl
cmp byte [ebp - 8], bl
mov dword [ebp + 0x2c], ebx
jne 0x512b17
movzx eax, byte [ebp + 0x3f]
sub eax, 0xd
je 0x512794
sub eax, 4
je 0x51277e
dec eax
dec eax
je 0x5127ac
sub eax, 0x4c
jne 0x512b17
push 0x459f68
push edi
call fcn.0050418c
test eax, eax
pop ecx
pop ecx
jne 0x5127ac
jmp 0x512b17
lea eax, [ebp - 0x38]
push 0x4592a0
push eax
call fcn.0050ca68
test eax, eax
pop ecx
pop ecx
jne 0x512b17
mov byte [ebp + 0x3f], bl
mov esi, dword [ebp + 0x60]
cmp byte [esi + 0x50], bl
je 0x5127d8
push ebx
push 0xff
push ebx
push 0x66
mov ecx, esi
mov byte [esi + 0x50], bl
call fcn.00514ca3
test eax, eax
je 0x512d7f
mov dword [esi + reloc.WINMM.dll_midiStreamOut], ebx
push 1
push dword [ebp + 0x64]
mov ecx, esi
call fcn.00518d6b
test eax, eax
je 0x512d7f
cmp byte [edi], bl
mov dword [ebp + 0x50], ebx
je 0x512843
cmp dword [ebp + 0x54], ebx
jne 0x51282f
push ebx
push edi
call fcn.004d8f0d
cmp ax, bx
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
jne 0x51282f
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.00512de1
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, esi
and eax, 3
push eax
push edi
call fcn.0051376e
test eax, eax
je 0x512d7f
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.00514ca3
test eax, eax
je 0x512d7f
mov eax, dword [ebp + 0x54]
cmp eax, ebx
je 0x512870
cmp byte [eax], bl
je 0x512d1e
mov eax, dword [ebp + 0x28]
cmp eax, ebx
jne 0x51285e
mov eax, 0x4585d8
push dword [ebp + 8]
push edi
push dword [ebp + 0x54]
push eax
push dword [esi + 0x10]
call fcn.004d83b3
jmp 0x5128d8
lea eax, [ebp]
push eax
push dword [ebp + 0x64]
call fcn.004d9693
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
je 0x5128c8
mov eax, dword [ebp + 0x50]
cmp ax, bx
je 0x512895
mov word [edi + 2], ax
jmp 0x512b17
mov ecx, edi
call fcn.004da5e8
test eax, eax
jne 0x512d2b
push dword [ebp]
mov ecx, edi
push dword [esi + 0x10]
call fcn.004da4b0
test eax, eax
jne 0x512b17
push dword [ebp + 0x64]
push 0x459d18
mov ecx, esi
jmp 0x512ce6
push ebx
push dword [ebp]
push ebx
push dword [ebp + 0x50]
push dword [esi + 0x10]
call fcn.004d8e82
add esp, 0x14
jmp 0x512b0f
mov esi, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x58]
cmp byte [ecx + esi - 1], 0x3a
jne 0x5129be
cmp ecx, 1
je 0x512d3e
mov al, byte [esi]
mov edi, esi
jmp 0x51292b
cmp al, 0x20
je 0x5129be
cmp al, 9
je 0x5129be
cmp al, byte [0x46308c]
je 0x5129be
cmp al, byte [0x46308e]
je 0x5129be
inc edi
mov al, byte [edi]
cmp al, bl
jne 0x512900
cmp byte [ecx + esi - 2], 0x3a
jne 0x5129a0
cmp ecx, 2
jbe 0x5129a0
mov edi, dword [ebp + 0x60]
cmp byte [edi + 0x50], bl
je 0x512964
push ebx
push 0xff
push ebx
push 0x66
mov ecx, edi
mov byte [edi + 0x50], bl
call fcn.00514ca3
test eax, eax
je 0x512d7f
mov dword [edi + reloc.WINMM.dll_midiStreamOut], ebx
push esi
push 0x45c1a8
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x204
push eax
call fcn.004d4eb6
fldz
add esp, 0x10
push ebx
push ecx
push ecx
fstp qword [esp]
push ebx
lea eax, reloc.WINMM.dll_midiStreamOut
push 0x10000
push eax
call fcn.00506836
mov ecx, dword [ebp + 0x58]
add esp, 0x18
jmp 0x5129a3
mov edi, dword [ebp + 0x60]
dec ecx
push ecx
push esi
mov byte [ecx + esi], bl
call fcn.004d4e50
pop ecx
pop ecx
push ebx
push esi
mov ecx, edi
call fcn.00518d6b
jmp 0x512b0f
cmp byte [esi], 0x23
mov edi, dword [ebp + 0x60]
jne 0x5129f2
mov eax, dword [edi + 0x4c]
push esi
mov ecx, edi
mov dword [ebp + 0x28], eax
call fcn.00512e65
cmp eax, ebx
je 0x512d7f
cmp eax, 3
jne 0x5129f2
mov eax, dword [ebp + 4]
mov dword [edi + 0x48], eax
mov eax, dword [ebp + 0x28]
mov dword [edi + 0x4c], eax
jmp 0x512b17
cmp byte [esi], 0x7d
jne 0x512a2d
push ebx
push ebx
push ebx
push 0x6c
mov ecx, edi
call fcn.00514ca3
test eax, eax
je 0x512d7f
inc esi
push esi
call fcn.004ccc79
cmp byte [eax], bl
pop ecx
mov dword [ebp + 0x64], eax
je 0x512b17
mov esi, eax
push esi
call fcn.00520ea7
mov edi, dword [ebp + 0x60]
pop ecx
mov dword [ebp + 0x58], eax
push 0x45c19c
push esi
call fcn.0050418c
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp + 0x50], eax
jne 0x512a49
mov eax, dword [ebp + 0x58]
add eax, esi
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x50]
push 0xffffffffffffffff
sub eax, esi
push eax
push 0x4596a4
push esi
call fcn.00503ef0
add esp, 0x10
test eax, eax
push ebx
push ebx
mov ecx, edi
push ebx
je 0x512ab8
cmp byte [esi], 0x7b
jne 0x512ab2
push 0x6b
call fcn.00514ca3
test eax, eax
je 0x512d7f
inc esi
push esi
call fcn.004ccc79
mov esi, eax
cmp byte [esi], bl
pop ecx
je 0x512b17
mov edi, dword [ebp + 0x60]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
mov dword [edi + reloc.WINMM.dll_midiStreamOut], ebx
call fcn.00512de1
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, edi
and eax, 3
push eax
push esi
jmp 0x512b0a
push ebx
push ebx
push ebx
push esi
jmp 0x512b0a
push 9
call fcn.00514ca3
test eax, eax
je 0x512d7f
push dword [ebp + 0x50]
mov dword [edi + reloc.WINMM.dll_midiStreamOut], ebx
call fcn.004ccc79
mov edi, eax
mov al, byte [edi]
cmp al, byte [0x46308c]
pop ecx
jne 0x512aec
inc edi
push edi
call fcn.004ccc79
pop ecx
mov edi, eax
cmp byte [edi], bl
je 0x512b17
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.00512de1
neg al
sbb al, al
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
and eax, 3
push eax
push edi
call fcn.0051376e
test eax, eax
je 0x512d7f
cmp byte [ebp + 0x3f], bl
je 0x512cac
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
dec eax
je 0x512c31
dec eax
je 0x512b71
dec eax
je 0x512c50
sub eax, 7
jne 0x512cac
cmp byte [ebp + 0x3f], 0x12
mov ecx, 0x4585d8
je 0x512b57
cmp byte [ebp + 0x3f], 0xa3
jbe 0x512bc5
cmp byte [ebp + 0x3f], 0xa5
ja 0x512bc5
movzx eax, byte [ebp + 0xc]
sub eax, 0x11
je 0x512bc0
sub eax, 0x91
je 0x512bc0
dec eax
jne 0x512bc5
mov ecx, 0x45c190
jmp 0x512bc5
push 0x45c18c
push dword [ebp + 0x64]
call fcn.00520c77
cmp byte [ebp + 0x4f], bl
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
push ebx
lea eax, [ebp + 0x64]
push 1
push eax
setne al
add al, 0xb8
push eax
call fcn.00514ca3
cmp byte [ebp + 0x43], bl
je 0x512b40
lea eax, [ebp - 0x38]
push eax
push 0x45c170
push dword [ebp + 0x64]
call fcn.004d4f92
add esp, 0xc
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x2c], 9
jmp 0x512498
mov ecx, 0x45c164
mov esi, dword [ebp + 0x60]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 8]
push eax
push ecx
push 0x45c148
push dword [ebp + 0x64]
mov dword [esi + reloc.WINMM.dll_midiStreamOut], ebx
call fcn.004d4f92
add esp, 0x14
push ebx
push 1
lea eax, [ebp + 0x64]
push eax
push 0x41
mov ecx, esi
call fcn.00514ca3
test eax, eax
je 0x512d7f
push ebx
push ebx
push ebx
push 0x66
mov ecx, esi
call fcn.00514ca3
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
push 0x45c13c
push dword [ebp + 0x64]
call fcn.004d4f92
add esp, 0xc
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x2c], 2
jmp 0x512498
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
push 0x45c134
push dword [ebp + 0x64]
call fcn.004d4f92
add esp, 0xc
mov dword [ebp + 0x58], eax
jmp 0x512498
push 0x45c18c
push dword [ebp + 0x64]
call fcn.00520c77
cmp byte [ebp + 0x4f], bl
pop ecx
pop ecx
mov ecx, dword [ebp + 0x60]
push ebx
lea eax, [ebp + 0x64]
push 1
push eax
setne al
add al, 0xb8
push eax
call fcn.00514ca3
lea eax, [ebp - 0x38]
push eax
push 0x45c124
push dword [ebp + 0x64]
call fcn.004d4f92
mov ecx, dword [ebp + 0x60]
add esp, 0xc
push ebx
push 1
lea eax, [ebp + 0x64]
push eax
push 0x41
call fcn.00514ca3
mov ecx, dword [ebp + 0x60]
push ebx
push ebx
push ebx
push 0x66
call fcn.00514ca3
mov byte [ebp + 0x3f], bl
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x58], ecx
lea ecx, reloc.WINMM.dll_midiStreamOut
cmp eax, ecx
mov dword [ebp + 0x64], eax
jne 0x512cd5
lea eax, reloc.WINMM.dll_midiStreamOut
mov edi, dword [ebp + 0x60]
mov dword [ebp + 0x30], eax
mov esi, eax
jmp 0x511dd3
lea eax, reloc.WINMM.dll_midiStreamOut
jmp 0x512cc8
push esi
push 0x45c104
mov ecx, dword [ebp + 0x60]
call fcn.00515a24
jmp 0x512d7f
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
push 0x45c0e0
jmp 0x512ce6
push dword [ebp + 0x64]
push 0x45c0a8
jmp 0x512ce3
mov ecx, dword [ebp + 0x60]
push dword [ebp + 0x64]
mov eax, dword [ecx + 4]
mov dword [ecx + reloc.WINMM.dll_midiStreamOut], eax
push 0x45c090
jmp 0x512ce6
push dword [ebp + 0x64]
push 0x45c064
jmp 0x5128c1
push dword [ebp + 0x64]
mov dword [esi + reloc.WINMM.dll_midiStreamOut], ebx
push 0x45c050
jmp 0x5128c1
push esi
push 0x45b660
jmp 0x512ce3
push dword [ebp + 0x64]
push 0x45b8e8
jmp 0x512ce3
push dword [ebp + 0x5c]
jmp 0x512cde
cmp byte [ebp - 0xa2b8], bl
je 0x512d98
mov eax, dword [ebp + 0x10]
mov esi, dword [edi + 0x4c]
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword [edi + 0x4c], eax
push 3
lea eax, reloc.WINMM.dll_midiStreamOut
push eax
mov ecx, edi
call fcn.0051376e
test eax, eax
jne 0x512d95
push dword [ebp + 0x68]
call fcn.00509248
pop ecx
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519d4e
jmp 0x512dd5
mov dword [edi + 0x4c], esi
push dword [ebp + 0x68]
call fcn.00509248
pop ecx
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519d4e
xor eax, eax
inc eax
jmp 0x512dd7
lea ecx, reloc.WINMM.dll_midiStreamOut
call fcn.00519d4e
fldz
push ebx
push ecx
push ecx
fstp qword [esp]
push dword [ebp + 0x74]
push ebx
push 0x45c02c
call fcn.00506836
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc