Function at 0x10057b62
Capabilities:
Parse credit card information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
push esi
push edi
mov eax, 0x100e3d7c
mov edi, ecx
push eax
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [edi + 9]
xor esi, esi
cmp dword [ebp + 0x10], esi
setl byte [ebp - 0xd]
and al, 0x11
cmp byte [ebp - 0xd], 0
mov byte [ebp - 0xe], al
jne 0x10057b9b
test byte [ebp + 0x14], 0x40
je 0x10057b9f
mov byte [ebp - 0xe], 0
and byte [ebp + 0x14], 1
push ebx
push 0x50
pop eax
push eax
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x48], eax
call fcn.10046141
or dword [ebp - 0x28], 0xffffffff
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], esi
call fcn.1004e489
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x44]
jae 0x1005833a
cmp word [ebx], 0
je 0x1005833a
lea ecx, [ebp - 0x60]
call fcn.1004e57b
push 0x25
pop esi
cmp word [ebx], si
je 0x10057c33
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 4]
sar ecx, 1
jmp 0x10057c2e
mov ax, word [ebx]
test ax, ax
je 0x10057be5
cmp ax, si
je 0x10057be5
mov edx, dword [ebp - 4]
mov word [edx], ax
add dword [ebp - 4], 2
inc ebx
inc ebx
dec ecx
jns 0x10057c15
jmp 0x10057be5
cmp byte [ebp + 0x14], 0
mov dword [ebp - 0x1c], ebx
je 0x10057dd7
lea edx, [ebx + 2]
mov cx, word [edx]
cmp cx, si
jne 0x10057c5a
mov eax, dword [ebp - 4]
mov word [eax], si
add dword [ebp - 4], 2
add ebx, 4
jmp 0x10057be5
cmp cx, 0x23
jne 0x10057ca2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x3c]
add ebx, 4
test eax, eax
mov dword [ebp + 8], ebx
je 0x10057be2
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax + ecx*4 + 8]
mov cx, word [eax]
test cx, cx
je 0x10057be2
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc eax
inc eax
xor ecx, ecx
mov cx, word [eax]
test cx, cx
jne 0x10057c87
jmp 0x10057be5
cmp cx, 0x2a
jne 0x10057cc1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x3c]
add ebx, 4
test eax, eax
mov dword [ebp + 8], ebx
je 0x10057be2
mov ecx, dword [ecx + 0x38]
jmp 0x10057cdf
cmp cx, 0x40
jne 0x10057cf3
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x3c]
add ebx, 4
test eax, eax
mov dword [ebp + 8], ebx
je 0x10057be2
mov ecx, dword [ecx + 0x38]
inc ecx
mov esi, dword [eax + ecx*4]
push esi
mov dword [ebp - 0x28], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x10057e63
push ecx
call fcn.10045b88
add esp, 4
test al, al
jne 0x10057d21
cmp cx, 0x7e
jb 0x10057dd7
xor eax, eax
mov ax, word [ebx + 4]
push eax
call fcn.10045b88
add esp, 4
test al, al
je 0x10057dd7
and dword [ebp - 0x20], 0
cmp cx, 0x7e
jb 0x10057d30
mov dword [ebp - 0x20], esi
mov ebx, edx
inc ebx
inc ebx
xor esi, esi
mov si, word [ebx]
mov dword [ebp + 8], ebx
xor ecx, ecx
xor edi, edi
push esi
call fcn.10045b88
add esp, 4
test al, al
je 0x10057d7f
push 0
push 0xa
push edi
push ecx
call fcn.100b4200
mov ecx, eax
movzx eax, si
mov edi, edx
cdq
add ecx, eax
adc edi, edx
add ecx, 0xffffffd0
adc edi, 0xffffffff
inc ebx
inc ebx
xor esi, esi
mov si, word [ebx]
push esi
call fcn.10045b88
add esp, 4
test al, al
jne 0x10057d4b
mov dword [ebp + 8], ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x38]
cdq
cmp edi, edx
ja 0x10057be2
jb 0x10057d98
cmp ecx, eax
jae 0x10057be2
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x10057be2
mov esi, dword [eax + ecx*4]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [ebp - 0x20], 0
mov edi, eax
je 0x10057e63
cmp word [esi], 0x22
jne 0x10057e63
cmp word [esi + edi*2 - 2], 0x22
jne 0x10057dcf
dec edi
dec edi
inc esi
inc esi
jmp 0x10057e63
lea edi, [ebx + 2]
mov esi, edi
jmp 0x10057de0
inc esi
inc esi
cmp word [esi], 0x26
je 0x10057dde
mov ebx, dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
push 7
push str.RANDOM_
push esi
call ebx
test eax, eax
jne 0x10057e07
call fcn.1004217a
and edx, 0x7fffffff
jmp 0x10057e23
push 7
push str.__THIS_
push esi
call ebx
test eax, eax
jne 0x10057ea6
mov eax, dword [ebp - 0x18]
add eax, 0x75bd036
xor edx, edx
and word [ebp - 0x104], 0
push edx
push eax
lea eax, [ebp - 0x104]
lea ebx, [esi + 0xe]
push eax
mov dword [ebp + 8], ebx
call fcn.100a0e5d
and word [ebp - 0x62], 0
add esp, 0xc
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
cmp edi, 1
jge 0x10057e5d
xor edi, edi
lea esi, [ebp - 0x104]
lea eax, [edi + 2]
push eax
lea ecx, [ebp - 0x60]
call fcn.1004e500
cmp dword [ebp - 0x28], 0
jl 0x10057e85
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax + ecx*4]
or dword [ebp - 0x28], 0xffffffff
dec edi
js 0x10057be2
lea eax, [edi + 1]
mov cx, word [esi]
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc esi
inc esi
dec eax
jne 0x10057e8f
jmp 0x10057be5
mov ecx, edi
xor eax, eax
jmp 0x10057ec3
cmp ax, 0x25
je 0x10057ece
cmp ax, 0x3d
je 0x10057ece
call fcn.10002df6
test al, al
jne 0x10057ece
inc ecx
inc ecx
mov ax, word [ecx]
test ax, ax
mov dword [ebp + 8], ecx
jne 0x10057eac
mov ebx, dword [ebp + 8]
movsx eax, byte [ebp - 0xe]
mov esi, ebx
sub esi, dword [ebp - 0x1c]
mov byte [ebp - 5], 0
sar esi, 1
cmp word [ebx], 0x25
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x3c], eax
je 0x10057f1c
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x60]
call fcn.1004e500
dec esi
js 0x10057be2
mov ecx, dword [ebp - 0x1c]
lea eax, [esi + 1]
mov dx, word [ecx]
mov esi, dword [ebp - 4]
mov word [esi], dx
add dword [ebp - 4], 2
inc ecx
inc ecx
dec eax
jne 0x10057f05
jmp 0x10057be2
cmp byte [ebp - 0xd], 0
jne 0x10057f5c
mov ax, word [edi]
cmp ax, 0x26
je 0x10057f37
cmp byte [ebp - 0xe], 0
je 0x10057f5c
cmp ax, 0x5e
je 0x10057f5c
add dword [ebp + 8], 2
cmp word [edi], 0x26
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
jne 0x1005805d
inc edi
inc edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], 1
jmp 0x1005805d
add dword [ebp + 8], 2
mov eax, edi
cmp word [eax], 0x5e
mov dword [ebp - 0x1c], eax
jne 0x10057f74
inc eax
inc eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 5], 8
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x24]
xor edi, edi
mov word [ecx], di
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], 0x7fffffff
jmp 0x10057fa2
mov cx, word [eax]
cmp cx, di
je 0x10057fe6
cmp cx, 0x3a
jne 0x10057fa0
cmp word [eax + 2], 0x7e
je 0x10057fab
inc eax
inc eax
cmp eax, ebx
mov dword [ebp - 0x14], eax
jb 0x10057f8b
jmp 0x10057fe6
and word [eax], 0
add dword [ebp - 0x14], 4
mov edi, eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10042554
mov eax, dword [ebp - 0x14]
mov ax, word [eax]
pop ecx
pop ecx
call fcn.10044784
test al, al
je 0x10057fe6
add dword [ebp - 0x14], 2
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10042554
pop ecx
pop ecx
push dword [ebp - 0x48]
and word [ebx], 0
push dword [ebp - 0x24]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edx, dword [ebp - 0x24]
mov esi, eax
test esi, esi
mov dword [ebp - 0x34], esi
jle 0x1005802f
cmp word [edx], 0
jne 0x1005802f
add esi, 0x64
push esi
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x48], esi
call fcn.10046168
push esi
push dword [ebp - 0x24]
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov edx, dword [ebp - 0x24]
mov esi, eax
mov dword [ebp - 0x34], esi
test edi, edi
mov word [ebx], 0x25
jne 0x1005821e
cmp word [edx], di
jne 0x1005830b
cmp byte [ebp - 5], 0
jne 0x10057be2
cmp byte [ebp - 0xd], 0
mov byte [ebp - 5], 1
jne 0x10057be2
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [ebp - 0xc], eax
xor esi, esi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x14], 0x7fffffff
jmp 0x1005809e
mov cx, word [eax]
cmp cx, dx
je 0x100581d2
cmp cx, 0x3a
jne 0x1005808f
cmp word [eax + 2], 0x7e
je 0x100580a7
inc eax
inc eax
cmp cx, 0x3f
mov dword [ebp - 0xc], eax
je 0x10058178
cmp eax, ebx
jb 0x10058076
jmp 0x100581d2
mov ecx, dword [ebp - 0x18]
xor esi, esi
push esi
push 0xffffffffffffffff
push esi
push dword [ebp - 0x30]
mov word [eax], si
call fcn.10010cdd
mov edi, eax
mov eax, dword [ebp - 0xc]
mov word [eax], 0x3a
add dword [ebp - 0xc], 4
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.10042554
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov ax, word [ecx]
call fcn.10044784
test al, al
je 0x1005810b
lea eax, [ebp - 0x14]
push eax
inc ecx
lea eax, [ebp - 0xc]
inc ecx
push eax
mov dword [ebp - 0xc], ecx
call fcn.10042554
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
jmp 0x1005810b
cmp ax, 0x25
je 0x10058115
inc ecx
inc ecx
mov dword [ebp - 0xc], ecx
mov ax, word [ecx]
cmp ax, si
jne 0x10058100
jmp 0x1005811b
add ecx, 2
mov dword [ebp + 8], ecx
cmp edi, esi
je 0x100581fe
mov esi, dword [edi + 4]
mov edx, dword [edi + 0x10]
mov ecx, dword [ebp - 0x2c]
cmp ecx, edx
mov eax, esi
lea ebx, [esi + edx*2]
mov dword [ebp - 0xc], eax
jle 0x1005813a
mov ecx, edx
test ecx, ecx
mov edi, dword [ebp - 0x14]
jl 0x1005827e
test edi, edi
jl 0x1005827e
test ecx, ecx
jle 0x100582d2
lea edx, [esi + ecx*2]
cmp esi, edx
jae 0x10058276
cmp word [eax], 0
je 0x1005826c
inc eax
inc eax
cmp eax, edx
mov dword [ebp - 0xc], eax
jb 0x10058160
jmp 0x10058276
lea esi, [eax - 2]
mov word [esi], dx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x20], esi
jmp 0x10058191
inc ecx
inc ecx
cmp ax, 0x3a
mov dword [ebp - 0xc], ecx
je 0x1005819b
mov ax, word [ecx]
cmp ax, dx
jne 0x10058186
jmp 0x1005819e
mov dword [ebp - 0x20], ecx
cmp word [ebx], dx
je 0x100581d2
cmp word [ebx + 2], 0x25
jne 0x100581d2
lea eax, [ebx + 4]
cmp word [eax], 0x64
jne 0x100581d2
jmp 0x100581bd
cmp cx, 0x25
je 0x100581ca
inc eax
inc eax
mov dword [ebp - 0xc], eax
mov cx, word [eax]
cmp cx, dx
jne 0x100581b5
jmp 0x100581d2
mov ebx, eax
add eax, 2
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push edi
push dword [ebp - 0x30]
mov word [ebx], di
call fcn.10010cdd
cmp esi, edi
mov word [ebx], 0x25
je 0x100581f6
mov word [esi], 0x3f
inc esi
inc esi
cmp eax, edi
jne 0x100582b5
cmp dword [ebp - 0x3c], 0
jne 0x10057be2
cmp byte [ebp - 5], 0
jne 0x10057be2
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 5], 1
jmp 0x10057f77
mov word [edi], 0x3a
mov edi, dword [ebp - 0x20]
cmp edi, esi
jle 0x1005822c
mov edi, esi
mov ecx, dword [ebp - 0x2c]
cmp ecx, esi
jle 0x10058235
mov ecx, esi
test edi, edi
jge 0x10058245
mov eax, esi
neg eax
cmp edi, eax
jge 0x10058243
mov edi, eax
add edi, esi
mov eax, esi
sub eax, edi
test ecx, ecx
jge 0x10058258
lea esi, [eax + ecx]
test esi, esi
jge 0x10058264
xor esi, esi
jmp 0x10058264
cmp esi, eax
jle 0x1005825e
mov esi, eax
cmp esi, ecx
jle 0x10058264
mov esi, ecx
lea edi, [edx + edi*2]
jmp 0x1005830d
sub eax, esi
sar eax, 1
and dword [ebp - 0x14], 0
mov ecx, eax
mov edi, dword [ebp - 0x14]
lea esi, [esi + ecx*2]
jmp 0x100582d2
cmp word [esi], 0
je 0x10058293
cmp eax, ebx
jae 0x10058293
inc eax
inc eax
mov dword [ebp - 0xc], eax
cmp word [eax], 0
jne 0x10058284
sub eax, esi
sar eax, 1
test ecx, ecx
jge 0x100582a1
add ecx, eax
jns 0x100582a1
xor ecx, ecx
mov edi, dword [ebp - 0x14]
test edi, edi
jge 0x100582b0
sub eax, ecx
add edi, eax
jns 0x100582b0
xor edi, edi
lea esi, [esi + ecx*2]
jmp 0x100582d2
push dword [ebp - 0x20]
lea ecx, [ebp - 0x1b8]
push ecx
push esi
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.1004e5eb
mov edi, dword [ebp - 0x34]
add esp, 0x14
mov esi, eax
lea eax, [edi + 2]
push eax
lea ecx, [ebp - 0x60]
call fcn.1004e500
jmp 0x100582fa
mov ax, word [esi]
mov ecx, dword [ebp - 4]
mov word [ecx], ax
mov eax, dword [ebp - 4]
mov ax, word [eax]
add dword [ebp - 4], 2
inc esi
inc esi
test ax, ax
je 0x10058302
dec edi
jns 0x100582e0
jmp 0x10057be2
sub dword [ebp - 4], 2
jmp 0x10057be2
mov edi, edx
lea eax, [esi + 2]
push eax
lea ecx, [ebp - 0x60]
call fcn.1004e500
dec esi
js 0x10057be2
lea eax, [esi + 1]
mov cx, word [edi]
mov edx, dword [ebp - 4]
mov word [edx], cx
add dword [ebp - 4], 2
inc edi
inc edi
dec eax
jne 0x10058323
jmp 0x10057be2
and word [eax], 0
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
mov ecx, dword [ebp + 0xc]
sar eax, 1
inc eax
inc eax
push eax
call fcn.10046168
mov esi, dword [ebp - 4]
sub esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x24]
sar esi, 1
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
pop ebx
je 0x10058372
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
leave
ret 0x10