Function at 0x486587
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xc4
push ebx
push esi
push edi
xor esi, esi
lea eax, [ebp + 0x78]
or edi, 0xffffffff
push eax
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x18], 1
call fcn.0043dcd9
pop ecx
mov ebx, 0x4bca2c
push ebx
lea ecx, [ebp + 0x50]
mov dword [ebp + 0x28], esi
call fcn.0044cf2d
push ebx
lea ecx, [ebp - 0x44]
call fcn.0044cf2d
push ebx
lea ecx, [ebp - 0x34]
call fcn.0044cf2d
fldz
mov eax, dword [ebp + 0x78]
fstp qword [ebp - 0x4c]
cmp word [eax], 0x2d
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
jne 0x48678a
push 4
pop ebx
push ebx
push dword [ebp + 0x78]
push str._txt
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48661e
mov dword [ebp + 0x40], ebx
jmp 0x486659
push 3
push dword [ebp + 0x78]
push 0x4c805c
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x486641
add dword [ebp + 0x78], 6
mov dword [ebp + 8], 3
jmp 0x48665d
push ebx
push dword [ebp + 0x78]
push str._gui
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48666c
xor esi, esi
inc esi
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
pop ecx
jmp 0x486749
push 6
push dword [ebp + 0x78]
push str._base
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x48669d
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x2c], 0xa
call fcn.004504ce
pop ecx
jmp 0x486666
push 5
push dword [ebp + 0x78]
push str._err
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x4866dc
add dword [ebp + 0x78], 0xa
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x14], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.0045030b
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004471b3
add esp, 0x10
jmp 0x486749
push 2
push dword [ebp + 0x78]
push 0x4c5c8c
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x486756
add dword [ebp + 0x78], ebx
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0047b6b7
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0047b6b7
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x30], eax
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004504ce
add esp, 0x20
cmp dword [ebp + 0x18], 0
jg 0x48673f
mov dword [ebp + 0x18], 1
mov edi, dword [ebp + 0x44]
sub edi, dword [ebp + 0x48]
inc edi
mov dword [ebp + 0x1c], edi
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x486604
test esi, esi
je 0x48678a
push str.27:INDATA
lea ecx, [ebp + 0x7c]
call fcn.0044cf2d
push dword [ebp + 0x78]
lea ecx, [ebp + 0x7c]
call fcn.0044420d
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x58]
call fcn.0042300e
cdq
mov esi, eax
mov ebx, edx
lea ecx, [ebp + 0x7c]
jmp 0x487355
mov eax, dword [ebp + 0x78]
mov ax, word [eax]
push 0x23
pop ecx
cmp ax, cx
jne 0x48679d
mov dword [ebp - 0x10], ecx
jmp 0x4867a3
cmp ax, 0x24
jne 0x4867a7
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov esi, dword [ebp + 0x78]
xor ebx, ebx
cmp word [esi], bx
pop ecx
jne 0x4867c2
xor esi, esi
jmp 0x48735a
push esi
call fcn.00410a39
pop ecx
push esi
lea ecx, [ebp + 0x44]
call fcn.0044cf2d
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0xa
push eax
lea ecx, [ebp + 0x44]
call fcn.004441e6
mov esi, dword [ebp + 0x44]
push 0x3b
push esi
mov dword [ebp + 0x78], esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov ebx, eax
test ebx, ebx
je 0x4867fe
and word [ebx], 0
mov edx, esi
call fcn.00443e07
test al, al
jne 0x486845
push 0x3d
push esi
call dword [sym.imp.SHLWAPI.dll_StrChrW]
test eax, eax
je 0x486845
cmp word [eax + 2], 0x3d
je 0x48682d
mov cx, word [eax - 2]
cmp cx, 0x3e
je 0x48682d
cmp cx, 0x3c
jne 0x48682f
xor eax, eax
test eax, eax
je 0x486845
push 0x3d
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00446f11
add esp, 0xc
push dword [ebp + 0x50]
lea ecx, [ebp + 0x3c]
call fcn.0044cf2d
mov ecx, dword [ebp + 0x58]
cmp byte [ecx + 0x92], 0
jne 0x486874
test byte [ecx + 9], 0xf
jne 0x486874
push 1
push 0
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x3c]
call fcn.00454bf7
jmp 0x486884
push 1
push 0
lea eax, [ebp + 0x50]
push eax
push dword [ebp + 0x3c]
call fcn.004538d5
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
test ebx, ebx
je 0x486895
mov word [ebx], 0x3b
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x3d
push 2
pop esi
jne 0x4868a4
add dword [ebp + 0x78], esi
lea eax, [ebp + 0x78]
push eax
call fcn.0043dcd9
mov ebx, dword [ebp + 0x78]
xor eax, eax
cmp edi, eax
pop ecx
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x10], ecx
mov dword [ebp + 4], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x40], ebx
jle 0x486903
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push ebx
add esi, 0x191
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0x641
add eax, esi
push eax
lea ecx, [ebp + 4]
call fcn.004441e6
mov eax, dword [ebp + 4]
mov dword [ebp - 0x1c], eax
lea eax, [eax + esi*2]
mov dword [ebp + 0x14], eax
jmp 0x4872e5
lea ecx, [ebp + 0x64]
call fcn.004441a1
lea ecx, [ebp - 8]
call fcn.004441a1
mov ecx, dword [ebp + 0x40]
add ecx, ecx
mov eax, 0x4c8018
sub eax, ecx
mov edi, ebx
push 0x4d8d1c
mov dword [ebp - 0x2c], eax
mov dword [ebp + 0x4c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x58]
mov dword [ebp + 0x3c], eax
mov byte [ebp + 0x6f], 0
mov edx, edi
xor eax, eax
jmp 0x48695d
cmp ax, 0x3b
je 0x486967
push eax
call fcn.0043dcc2
add esp, 4
test al, al
jne 0x486967
add edi, esi
mov dword [ebp + 0x4c], edi
mov ax, word [edi]
test ax, ax
jne 0x486945
jmp 0x48697a
and word [edi], 0
lea eax, [ebp + 0x4c]
add edi, esi
push eax
mov dword [ebp + 0x4c], edi
call fcn.0043dcd9
pop ecx
cmp byte [ebx + 0x92], 0
jne 0x48699b
test byte [ebx + 9], 0xf
jne 0x48699b
push 0
push 0
lea eax, [ebp + 0x28]
push eax
push edx
mov ecx, ebx
call fcn.00454bf7
jmp 0x4869ab
push 0
push 0
lea eax, [ebp + 0x28]
push eax
push edx
mov ecx, ebx
call fcn.004538d5
mov edi, dword [ebp + 0x28]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 4]
push eax
lea ecx, [ebp + 0x34]
call fcn.004441bf
mov edx, dword [ebp + 0x34]
and dword [ebp + 0x60], 0
mov eax, edx
xor ecx, ecx
jmp 0x486d2e
cmp cx, 0x41
jb 0x4869e6
cmp cx, 0x5a
ja 0x4869e6
add ecx, 0x20
jmp 0x486c9f
cmp cx, 0xff21
jb 0x4869ff
cmp cx, 0xff3a
ja 0x4869ff
add ecx, 0x140
jmp 0x486c9f
cmp cx, 0xff41
jb 0x486a18
cmp cx, 0xff5a
ja 0x486a18
add ecx, 0x120
jmp 0x486c9f
cmp cx, 0xff10
jb 0x486a26
cmp cx, 0xff19
jbe 0x486a0d
cmp cx, 0xff0b
jne 0x486a37
mov word [eax], 0x2b
jmp 0x486d2a
cmp cx, 0xff0d
je 0x486d25
cmp cx, 0x2014
je 0x486d25
cmp cx, 0xd7
je 0x486d1e
cmp cx, 0xff0a
je 0x486d1e
cmp cx, 0xf7
je 0x486d17
cmp cx, 0xff0f
je 0x486d17
cmp cx, 0x2215
je 0x486d17
cmp cx, 0xff05
je 0x486d10
cmp cx, 0xfe6a
je 0x486d10
cmp cx, 0xff06
jne 0x486aab
mov word [eax], 0x26
jmp 0x486d2a
cmp cx, 0xff20
je 0x486d09
cmp cx, 0xfe6b
je 0x486d09
cmp cx, 0xff3e
jne 0x486ad2
mov word [eax], 0x5e
jmp 0x486d2a
cmp cx, 0xff1d
je 0x486cae
cmp cx, 0xfe66
je 0x486cae
cmp cx, 0xff03
jne 0x486af9
mov word [eax], 0x23
jmp 0x486d2a
cmp cx, 0xff08
je 0x486d02
cmp cx, 0xfe59
je 0x486d02
cmp cx, 0xfe5d
je 0x486d02
cmp cx, 0x3014
je 0x486d02
cmp cx, 0xff09
je 0x486cfb
cmp cx, 0xfe5a
je 0x486cfb
cmp cx, 0xfe5e
je 0x486cfb
cmp cx, 0x3015
je 0x486cfb
cmp cx, 0xff3b
je 0x486cf4
cmp cx, 0x3010
je 0x486cf4
cmp cx, 0xff3d
je 0x486ced
cmp cx, 0x3011
je 0x486ced
cmp cx, 0xff5b
je 0x486ce6
cmp cx, 0xfe5b
je 0x486ce6
cmp cx, 0xff5d
je 0x486cdf
cmp cx, 0xfe5c
je 0x486cdf
cmp cx, 0x300a
je 0x486cd8
cmp cx, 0x3008
je 0x486cd8
cmp cx, 0xff1c
je 0x486cd8
cmp cx, 0x300b
je 0x486cd1
cmp cx, 0x3009
je 0x486cd1
cmp cx, 0xff1e
je 0x486cd1
cmp cx, 0xff0c
jne 0x486bfc
mov word [eax], 0x2c
jmp 0x486d2a
cmp cx, 0xff0e
je 0x486cca
cmp cx, 0x3002
je 0x486cca
cmp cx, 0xff1b
jne 0x486c23
mov word [eax], 0x3b
jmp 0x486d2a
cmp cx, 0x3000
jne 0x486c34
mov word [eax], 0x20
jmp 0x486d2a
cmp cx, 0xff5e
jne 0x486c45
mov word [eax], 0x7e
jmp 0x486d2a
cmp cx, 0xff01
je 0x486cc3
cmp cx, 0xfe57
je 0x486cc3
cmp cx, 0xa7
je 0x486cbc
cmp cx, 0xff5c
je 0x486cbc
cmp cx, 0x7c
je 0x486cbc
cmp cx, 0x2223
je 0x486cbc
cmp cx, 0xffe4
je 0x486cbc
cmp cx, 0x2264
je 0x486cb5
cmp cx, 0x2266
je 0x486cb5
cmp cx, 0x226f
je 0x486cb5
cmp cx, 0x2265
je 0x486ca7
cmp cx, 0x2267
je 0x486ca7
cmp cx, 0x226e
je 0x486ca7
mov word [eax], cx
jmp 0x486d2a
mov word [eax], 0x3e
add eax, esi
mov word [eax], 0x3d
jmp 0x486d2a
mov word [eax], 0x3c
jmp 0x486cac
mov word [eax], 0x7c
jmp 0x486d2a
mov word [eax], 0x21
jmp 0x486d2a
mov word [eax], 0x2e
jmp 0x486d2a
mov word [eax], 0x3e
jmp 0x486d2a
mov word [eax], 0x3c
jmp 0x486d2a
mov word [eax], 0x7d
jmp 0x486d2a
mov word [eax], 0x7b
jmp 0x486d2a
mov word [eax], 0x5d
jmp 0x486d2a
mov word [eax], 0x5b
jmp 0x486d2a
mov word [eax], 0x29
jmp 0x486d2a
mov word [eax], 0x28
jmp 0x486d2a
mov word [eax], 0x40
jmp 0x486d2a
mov word [eax], 0x25
jmp 0x486d2a
mov word [eax], 0x2f
jmp 0x486d2a
mov word [eax], 0x2a
jmp 0x486d2a
mov word [eax], 0x2d
add eax, esi
add edi, esi
mov cx, word [edi]
test cx, cx
jne 0x4869d2
and word [eax], cx
mov ebx, eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edx
call fcn.0043dcd9
mov esi, dword [ebp + 0x78]
mov ax, word [esi]
pop ecx
push 0x23
pop ecx
cmp ax, cx
mov edi, 0x4bca2c
mov dword [ebp], edi
jne 0x486d69
inc esi
mov dword [ebp + 0x3c], ecx
inc esi
jmp 0x486d75
cmp ax, 0x24
jne 0x486d75
inc esi
inc esi
and dword [ebp + 0x3c], 0
cmp word [esi], 0x26
mov ecx, esi
jne 0x486d85
inc ecx
inc ecx
cmp word [ecx], 0x26
je 0x486d7d
mov ax, word [ecx]
call fcn.0044226c
test al, al
je 0x486dcc
inc ecx
inc ecx
xor edx, edx
mov dx, word [ecx]
mov dword [ebp + 0x78], ecx
mov eax, edx
call fcn.0044226c
test al, al
jne 0x486d91
cmp dx, 0x30
jb 0x486db2
cmp dx, 0x39
jbe 0x486d91
lea eax, [ebp + 0x78]
push eax
mov edx, ecx
call fcn.0043dcd9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x3d
pop ecx
jne 0x486dcc
mov dword [ebp + 0x60], edx
mov ebx, eax
cmp word [ebx], 0x3d
jne 0x486de1
mov eax, dword [ebp + 0x60]
and word [eax], 0
mov dword [ebp], esi
lea esi, [ebx + 2]
jmp 0x486df0
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0
jne 0x486df0
mov eax, dword [ebp + 0x10]
mov dword [ebp], eax
mov eax, dword [ebp - 8]
xor ebx, ebx
mov word [eax], bx
mov eax, dword [ebp + 0x64]
push 0x23
push esi
mov word [eax], bx
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, ebx
mov dword [ebp + 0x54], eax
je 0x486e15
mov word [eax], bx
add dword [ebp + 0x54], 2
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
dec eax
lea edx, [esi + eax*2]
mov cx, word [edx]
cmp cx, 0x2b
je 0x486e78
cmp cx, 0x2d
je 0x486e78
cmp cx, 0x2a
je 0x486e78
cmp cx, 0x2f
je 0x486e78
cmp cx, 0x25
je 0x486e78
cmp cx, 0x5e
je 0x486e78
cmp cx, 0x40
je 0x486e78
cmp cx, 0x26
je 0x486e78
cmp cx, 0x7c
je 0x486e78
cmp cx, 0x3d
je 0x486e6b
cmp cx, 0x3e
je 0x486e6b
cmp cx, 0x3c
jne 0x486e7b
mov word [edx + 2], 0x30
mov word [esi + eax*2 + 4], bx
jmp 0x486e7b
mov word [edx], bx
push 0x64
lea ecx, [ebp + 0x68]
call fcn.004441bf
mov word [esi - 2], 0x20
push esi
mov word [esi - 2], bx
call fcn.004452b2
test eax, eax
pop ecx
jge 0x486ead
or dword [ebp + 0x24], 0xffffffff
cmp word [ebp + 0x3c], bx
mov dword [ebp + 0x20], 0x80070057
jne 0x486ed4
jmp 0x486f1f
cmp word [ebp + 0x3c], bx
lea eax, [ebp + 0x6f]
push eax
push esi
je 0x486f04
call fcn.00456be0
cmp byte [ebp + 0x6f], 0
mov esi, eax
movsx eax, byte [ebp + 0x6f]
mov ebx, edx
cdq
pop ecx
pop ecx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edx
je 0x486eda
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
cmp dword [ebp + 0x7c], 0
je 0x486fe6
lea ecx, [ebp + 0x68]
call fcn.0043dd41
lea ecx, [ebp + 0x34]
call fcn.0043dd41
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x48733a
call fcn.00456ba5
fstp qword [ebp + 0x5c]
cmp byte [ebp + 0x6f], 0
movsx eax, byte [ebp + 0x6f]
cdq
pop ecx
pop ecx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edx
je 0x486f25
fld qword [ebp - 0x4c]
fstp qword [ebp + 0x5c]
mov eax, dword [ebp + 0x7c]
cmp eax, ebx
jne 0x48731e
cmp dword [ebp + 0x2c], 1
jle 0x487114
fld qword [ebp + 0x5c]
mov byte [ebp + 0x7b], 0
fcomp qword [0x4c0950]
fnstsw ax
test ah, 5
jp 0x486f5a
fld qword [ebp + 0x5c]
mov byte [ebp + 0x7b], 1
fchs
fstp qword [ebp + 0x5c]
push 0x66
fldz
xor edi, edi
push edi
push edi
sub esp, 0x10
fstp qword [esp + 8]
lea eax, [ebp - 0xc]
fld qword [ebp + 0x5c]
fstp qword [esp]
push eax
call fcn.00497ada
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov cx, word [esi]
xor ebx, ebx
push ecx
call fcn.00443c3d
add esp, 0x24
jmp 0x486fc5
movzx eax, cx
push 0
sub eax, 0x30
cdq
push 0xa
push edi
mov ecx, edx
push ebx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x3c], ecx
call fcn.004aa1b0
mov ecx, dword [ebp + 0x60]
add ecx, eax
mov eax, dword [ebp + 0x3c]
adc eax, edx
inc esi
mov ebx, ecx
inc esi
xor ecx, ecx
mov cx, word [esi]
mov edi, eax
push ecx
call fcn.00443c3d
add esp, 4
test al, al
jne 0x486f8d
cmp byte [ebp + 0x7b], al
je 0x486fd5
neg ebx
adc edi, 0
neg edi
mov esi, ebx
lea ecx, [ebp - 0xc]
mov ebx, edi
call fcn.0043dd41
mov edi, 0x4bca2c
mov eax, dword [ebp + 0x2c]
cmp eax, 1
jg 0x487000
push ebx
push esi
push dword [ebp + 0x68]
call fcn.00497e07
add esp, 0xc
jmp 0x4871a8
cmp eax, 2
mov dword [ebp + 0x78], edi
jne 0x487011
mov dword [ebp + 0x78], 0x4c8008
jmp 0x48702b
cmp eax, 8
jne 0x48701f
mov dword [ebp + 0x78], 0x4c8000
jmp 0x48702b
cmp eax, 0x10
jne 0x48702b
mov dword [ebp + 0x78], 0x4c7ff8
test ebx, ebx
mov dword [ebp + 0x60], edi
jg 0x487046
jl 0x487038
test esi, esi
jae 0x487046
neg esi
adc ebx, 0
mov dword [ebp + 0x60], 0x4c5d8c
neg ebx
test ebx, ebx
mov edi, esi
ja 0x487068
jb 0x487052
test esi, esi
ja 0x48705f
push 0x4c07c4
lea ecx, [ebp + 0x68]
call fcn.0044cf95
test ebx, ebx
ja 0x487068
cmp esi, 1
jb 0x4870df
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x68]
cdq
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 4]
call fcn.0044cf7e
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push ebx
push edi
call fcn.004ac510
push ecx
push 0x4c7ff0
push esi
mov dword [ebp + 0x3c], ebx
mov edi, eax
mov dword [ebp - 0x50], edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc ebx
push ebx
push dword [ebp - 4]
lea eax, [esi + eax*2]
push eax
call fcn.0040561e
add esp, 0xc
lea ecx, [ebp - 4]
call fcn.0043dd41
mov ebx, dword [ebp - 0x50]
test ebx, ebx
ja 0x487075
jb 0x4870df
cmp edi, 1
jae 0x487075
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x18]
call fcn.0044cf7e
push dword [ebp + 0x60]
lea ecx, [ebp + 0x68]
call fcn.0044cf95
push dword [ebp + 0x78]
lea ecx, [ebp + 0x68]
call fcn.0044420d
push dword [ebp - 0x18]
lea ecx, [ebp + 0x68]
call fcn.0044420d
lea ecx, [ebp - 0x18]
jmp 0x4871a3
mov eax, dword [ebp + 0x54]
or dword [ebp + 0x78], 0xffffffff
cmp eax, ebx
mov byte [ebp + 0xc], 0
mov byte [ebp - 0x14], 0
je 0x487173
cmp word [eax], 0x23
jne 0x487137
mov cl, byte [eax]
inc eax
inc eax
mov byte [ebp + 0xc], cl
mov dword [ebp + 0x54], eax
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x54]
push eax
call fcn.0044073a
mov edx, dword [ebp + 0x54]
pop ecx
pop ecx
mov cx, word [edx]
cmp cx, 0x65
je 0x48715e
cmp cx, 0x66
je 0x48715e
cmp cx, 0x67
jne 0x487163
mov cl, byte [edx]
mov byte [ebp - 0x14], cl
cmp eax, ebx
jle 0x487173
cmp dword [ebp + 0x78], ebx
jge 0x487173
mov byte [ebp + 0xc], 0
mov dword [ebp + 0x78], ebx
push dword [ebp - 0x14]
fldz
lea eax, [ebp - 0x28]
push dword [ebp + 0xc]
push dword [ebp + 0x78]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp + 0x5c]
fstp qword [esp]
push eax
call fcn.00497ada
add esp, 0x20
push eax
lea ecx, [ebp + 0x68]
call fcn.0044cfc3
lea ecx, [ebp - 0x28]
call fcn.0043dd41
push dword [ebp + 0x68]
call fcn.00410a39
pop ecx
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp + 0x40]
mov esi, eax
mov eax, dword [ebp + 8]
lea ebx, [eax + ecx]
inc esi
lea eax, [esi + ebx + 1]
push eax
lea ecx, [ebp + 0x64]
call fcn.004441e6
mov eax, dword [ebp + 0x64]
add ebx, ebx
cmp dword [ebp + 0x40], 0
lea edi, [ebx + eax + 2]
je 0x4871f2
push 8
push str.txt
push eax
call fcn.00413fe3
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x487212
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x64]
push 6
add eax, eax
add ecx, eax
push 0x4c7fdc
push ecx
call fcn.00413fe3
add esp, 0xc
mov eax, dword [ebp + 0x64]
push esi
push dword [ebp + 0x68]
mov word [ebx + eax], 0x20
push edi
call fcn.0040561e
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], 0
je 0x48725f
mov eax, dword [ebp]
cmp word [eax], 0
je 0x487244
mov ecx, dword [ebp + 0x58]
push edi
push eax
call fcn.004438ac
lea ecx, [ebp + 0x68]
call fcn.0043dd41
lea ecx, [ebp + 0x34]
call fcn.0043dd41
mov edi, dword [ebp + 0x4c]
push 2
pop esi
jmp 0x486932
lea ecx, [ebp + 0x68]
call fcn.0043dd41
lea ecx, [ebp + 0x34]
call fcn.0043dd41
mov eax, dword [ebp + 0x10]
xor esi, esi
cmp word [eax], si
je 0x487290
mov ecx, dword [ebp + 0x58]
push edi
push eax
call fcn.004438ac
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4872cd
push 0x4d8d1c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 0x20]
or eax, dword [ebp + 0x24]
mov dword [ebp + 0x78], esi
je 0x4872b8
push 0xffffffffffffffff
push dword [ebp - 0x2c]
lea ecx, [ebp + 0x78]
call fcn.004442c5
mov eax, dword [ebp + 0x78]
jmp 0x4872bb
mov eax, dword [ebp + 0x64]
mov ecx, dword [ebp + 0x58]
push esi
push eax
call fcn.00481794
lea ecx, [ebp + 0x78]
call fcn.0043dd41
cmp dword [ebp + 0x1c], esi
jle 0x487334
lea ecx, [ebp - 8]
call fcn.0043dd41
lea ecx, [ebp + 0x64]
call fcn.0043dd41
mov edi, dword [ebp + 0x1c]
push dword [ebp + 0x48]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x30]
dec edi
push eax
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x10], eax
call fcn.00440dc5
push dword [ebp + 0x30]
mov ebx, dword [ebp + 0x14]
push dword [ebp - 0x40]
push ebx
call fcn.00440e24
mov eax, dword [ebp + 0x18]
add dword [ebp + 0x48], eax
add esp, 0x18
add dword [ebp + 0x30], eax
push 2
pop esi
jmp 0x486903
fld qword [ebp + 0x5c]
fstp qword [eax]
fld qword [ebp + 0x5c]
call fcn.004aa5f4
mov esi, eax
mov ebx, edx
jmp 0x486ee4
mov esi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x24]
lea ecx, [ebp - 8]
call fcn.0043dd41
lea ecx, [ebp + 0x64]
call fcn.0043dd41
lea ecx, [ebp + 4]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp - 0x34]
call fcn.0043dd41
lea ecx, [ebp - 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x50]
call fcn.0043dd41
lea ecx, [ebp + 0x28]
call fcn.0043dd41
pop edi
mov eax, esi
pop esi
mov edx, ebx
pop ebx
add ebp, 0x70
leave
ret 8