Function at 0x44fb51
Capabilities:
Parse credit card information
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x1c4
or dword [ebp], 0xffffffff
or dword [ebp + 0x20], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 0x78]
push edi
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp esi, ecx
push 4
mov dword [ebp - 0xc], ecx
mov byte [ebp + 0x67], cl
mov byte [ebp + 0x57], cl
mov byte [ebp + 0x33], cl
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x1c], ecx
mov dword [ebp - 0x38], 1
mov dword [ebp + 4], ecx
mov dword [ebp + 0x5c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp + 0x44], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], ecx
mov dword [ebp + 0x40], str._I64d
pop ebx
je 0x450356
cmp word [esi], cx
je 0x450356
xor edi, edi
mov di, word [esi]
mov eax, edi
call fcn.00431c5f
test al, al
jne 0x450341
cmp di, 0x2e
je 0x450334
cmp di, 0x24
je 0x450334
cmp di, 0x25
je 0x450334
cmp di, 0x2a
jne 0x44fc05
or byte [ebp + 0x67], 4
jmp 0x450334
push 0x7e
pop ecx
cmp di, cx
jne 0x44fc56
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x44fc20
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x450334
cmp di, cx
jne 0x44fc56
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x44fc34
or byte [ebp + 0x67], 8
jmp 0x44fc19
cmp di, cx
jne 0x44fc56
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x44fc48
or byte [ebp + 0x67], 0xa
jmp 0x44fc19
cmp di, cx
jne 0x44fc56
or byte [ebp + 0x67], 1
jmp 0x450334
push ebx
push esi
push str._env
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fc78
add esi, 6
mov dword [ebp - 0x38], 0x40
jmp 0x450334
push ebx
push esi
push str._raw
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fc9a
add esi, 6
mov dword [ebp + 4], 0x40
jmp 0x450334
cmp di, 0x3c
jne 0x44fca9
mov byte [ebp + 0x57], 1
jmp 0x450334
cmp di, 0x3e
jne 0x44fcb8
mov byte [ebp + 0x57], 2
jmp 0x450334
push ebx
push esi
push 0x49f6dc
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fcd7
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x450334
push ebx
push esi
push str._tom
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fcf9
add esi, 6
mov dword [ebp + 0x4c], 1
jmp 0x450334
push ebx
push esi
push str._tow
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fd1b
add esi, 6
mov dword [ebp + 0x4c], 2
jmp 0x450334
push 5
push esi
push str._copy
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fd3a
add esi, 8
mov dword [ebp + 0x4c], ebx
jmp 0x450334
push 5
push esi
push str._addr
call fcn.00432c59
add esp, 0xc
test al, al
push 8
je 0x44fd5b
pop eax
add esi, eax
mov dword [ebp + 0x4c], eax
jmp 0x450334
pop edi
push edi
push esi
push str._mkdummy
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fd7e
add esi, 0xe
mov dword [ebp + 0x4c], 0x81
jmp 0x450334
push 5
push esi
push str._make
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fda0
add esi, edi
mov dword [ebp + 0x4c], 0x80
jmp 0x450334
push 5
push esi
push str._swap
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fdc2
add esi, edi
mov dword [ebp + 0x4c], 0x20
jmp 0x450334
push 5
push esi
push str._char
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fde4
mov dword [ebp + 0x5c], 1
add esi, edi
jmp 0x450334
push 6
push esi
push str._wchar
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fe07
mov dword [ebp + 0x5c], 2
add esi, 0xa
jmp 0x450334
push 6
push esi
push str._short
call fcn.00432c59
add esp, 0xc
test al, al
jne 0x44fdf8
push ebx
push esi
push str._ptr
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fe39
mov dword [ebp + 0x5c], ebx
add esi, 6
jmp 0x450334
push 6
push esi
push str._float
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fe55
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x5c], ebx
jmp 0x44fdff
push 7
push esi
push str._double
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fe77
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
add esi, 0xc
jmp 0x450334
push edi
push esi
push str._ldouble
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fe98
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x5c], edi
add esi, 0xe
jmp 0x450334
push 6
push esi
push str._int64
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44feb7
add esi, 0xa
mov dword [ebp + 0x5c], edi
jmp 0x450334
push 9
push esi
push str._longlong
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44fed0
add esi, 0x10
jmp 0x44feaf
push 5
push esi
push str._long
call fcn.00432c59
add esp, 0xc
test al, al
jne 0x44fef8
push 5
push esi
push str._long
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44ff00
mov dword [ebp + 0x5c], ebx
jmp 0x44fddd
push 5
push esi
push str._zero
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44ff1f
add esi, edi
and dword [ebp + 0x20], 0
jmp 0x450334
push 7
push esi
push str._intsys
call fcn.00432c59
add esp, 0xc
test al, al
jne 0x450141
push ebx
push esi
push str._int
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44ff69
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44ff5e
cmp ax, 0x5a
jbe 0x44ff69
add esi, 6
mov dword [ebp + 0x5c], ebx
jmp 0x450334
push 5
push esi
push 0x49f628
call fcn.00432c59
add esp, 0xc
test al, al
je 0x44ffaa
xor eax, eax
inc eax
add esi, edi
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x44], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x40], str.0x_I64X
jne 0x450334
mov esi, eax
mov dword [ebp + 0x40], str.0x_02I64X
jmp 0x450334
push 6
push esi
push 0x49f5fc
call fcn.00432c59
add esp, 0xc
test al, al
jne 0x44ffd2
push 6
push esi
push 0x49f5f4
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450000
push 2
pop eax
add esi, 0xa
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x44], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x40], str.0x_I64X
jne 0x450334
mov esi, eax
mov dword [ebp + 0x40], str.0x_04I64X
jmp 0x450334
push ebx
push esi
push 0x49f5d8
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450039
add esi, 6
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x44], 0x64
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x40], str.0x_I64X
jne 0x450334
jmp 0x44fc19
push 6
push esi
push 0x49f5d0
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45005e
add esi, 0xa
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x450334
push 7
push esi
push 0x49f5c8
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450083
add esi, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x44], edi
jmp 0x450334
push edi
push esi
push 0x49f5bc
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45009e
add esi, 0xe
mov dword [ebp - 0x10], edi
jmp 0x450078
push 6
push esi
push 0x49f5b4
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4500b7
add esi, 0xa
jmp 0x4500ce
push 9
push esi
push 0x49f5a8
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4500ef
add esi, 0x10
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x44], edi
jne 0x450334
mov esi, eax
mov dword [ebp + 0x40], str.0x_016I64X
jmp 0x450334
push 5
push esi
push 0x49f588
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450111
add esi, edi
mov dword [ebp + 0x40], str.0x_I64X
jmp 0x4501a2
push 6
push esi
push str._intpe
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45012a
add esi, 0xa
jmp 0x4501a2
push 7
push esi
push 0x49f578
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450178
mov dword [ebp + 0x44], ebx
add esi, 0xc
cmp byte [0x4afb91], 3
mov dword [ebp + 0x5c], ebx
jne 0x450153
mov dword [ebp + 0x5c], edi
cmp word [esi], 0x30
jne 0x450334
inc esi
inc esi
cmp byte [0x4afb91], 3
je 0x4500e3
mov dword [ebp + 0x40], str.0x_08I64X
jmp 0x450334
push ebx
push esi
push 0x49f570
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4501b9
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x45019f
cmp ax, 0x5a
jbe 0x4501b9
add esi, 6
lea eax, [esi + 2]
cmp word [eax], 0x30
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jne 0x450334
mov esi, eax
jmp 0x45016c
push ebx
push esi
push str._ret
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45020e
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x58], esi
jne 0x4501e3
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x450207
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.00439fac
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x450334
push ebx
push esi
push str._get
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45024f
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x1c], 1
mov dword [ebp + 0x58], esi
jne 0x450238
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.00410c71
add esp, 4
test al, al
je 0x450207
lea eax, [ebp + 0x1c]
jmp 0x4501f8
push 3
push esi
push 0x49f55c
call fcn.00432c59
add esp, 0xc
test al, al
je 0x45026e
add esi, ebx
mov byte [ebp + 0x33], 1
jmp 0x450334
push 2
pop edi
push edi
push esi
push 0x49f558
call fcn.00432c59
add esp, 0xc
test al, al
je 0x4502a7
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
mov dword [ebp - 0x20], 1
call fcn.00439fac
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
jmp 0x450332
push edi
push esi
push 0x49f554
call fcn.00432c59
add esp, 0xc
test al, al
je 0x450334
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
call fcn.00439fac
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x4502e5
call fcn.00431c5f
test al, al
jne 0x4502e5
add dword [ebp + 0x58], edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.00439fac
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x45030b
call fcn.00431c5f
test al, al
jne 0x45030b
add dword [ebp + 0x58], edi
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x58]
push eax
mov dword [ebp - 4], esi
call fcn.00439fac
mov eax, dword [ebp + 0xc]
sub eax, esi
mov esi, dword [ebp + 0x58]
inc eax
cmp word [esi], 0x5d
pop ecx
pop ecx
mov dword [ebp], eax
je 0x450334
sub esi, edi
inc esi
inc esi
xor ecx, ecx
cmp word [esi], cx
jne 0x44fbc4
cmp dword [ebp + 4], ecx
je 0x450356
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.004047e3
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x2c]
push eax
call fcn.00431c97
mov eax, dword [ebp + 0x2c]
pop ecx
jmp 0x450373
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x2c], eax
cmp word [eax], 0x26
je 0x45036b
lea ecx, [ebp + 4]
call fcn.0043717e
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
xor ebx, ebx
jmp 0x450396
cmp cx, 0x3d
je 0x45039e
inc eax
inc eax
mov dword [ebp + 0x2c], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45038b
mov dword [ebp + 0x60], 0x497994
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x56], 0
je 0x4503b7
mov byte [ebp + 0x56], 1
jmp 0x4503bf
inc eax
inc eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x50]
call fcn.0040d1db
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x7e
pop ecx
jne 0x45040f
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0xc], edx
jmp 0x4503e5
cmp cx, 0x7e
je 0x4503f0
inc eax
inc eax
mov dword [ebp + 0x50], eax
mov cx, word [eax]
cmp cx, bx
jne 0x4503dd
cmp word [eax], 0x7e
je 0x450400
mov edi, 0x80070057
jmp 0x450f3b
mov word [eax], bx
add dword [ebp + 0x50], 2
cmp word [edx], bx
jne 0x45040f
mov dword [ebp - 0xc], ebx
lea ecx, [ebp - 8]
call fcn.0043717e
mov esi, dword [ebp - 0x14]
push 0x3b
push 0x2c
lea eax, [ebp + 4]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.0042d9ac
push 0x3b
push 0x2c
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.0042d9ac
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
je 0x450460
cmp word [eax], bx
jne 0x450460
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x450460
xor edi, edi
jmp 0x450f33
cmp byte [ebp + 0x7c], 2
mov edi, esi
setge byte [ebp + 0x4a]
mov al, byte [ebp + 0x4a]
neg al
mov ecx, esi
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x34], ecx
sbb eax, eax
and eax, esi
cmp dword [ebp + 0x24], ebx
mov dword [ebp + 0x18], eax
jle 0x4504a1
dec dword [ebp + 0x24]
js 0x450498
mov eax, dword [ebp + 0x24]
inc eax
sub dword [ebp + 0x24], eax
dec eax
mov ecx, dword [ecx + 0x24]
jne 0x45048f
mov dword [ebp + 0x34], ecx
cmp byte [ebp + 0x4a], 0
je 0x4504a1
mov dword [ebp + 0x18], ecx
mov eax, dword [ebp + 0x1c]
cmp eax, ebx
jle 0x4504b5
dec eax
js 0x4504b5
inc eax
dec eax
mov edi, dword [edi + 0x24]
jne 0x4504ac
mov dword [ebp + 0x14], edi
cmp byte [ebp + 0x56], 0
je 0x4504c2
mov byte [ebp + 0x57], 0
mov dword [ebp + 0x4c], ebx
push 0x4b069c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp], ebx
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x40], ebx
jle 0x450523
push dword [ebp + 0x50]
call edi
push dword [ebp + 0x60]
mov esi, eax
inc esi
call edi
inc eax
lea eax, [eax + esi + 0xc8]
push eax
lea ecx, [ebp + 0xc]
call fcn.004371c5
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0xc]
lea esi, [eax + esi*2 + 0x50]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
jmp 0x450bb7
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
lea edi, [ebp - 0x74]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x7c]
xor esi, esi
lea ecx, [ebp + 8]
mov dword [ebp + 0x38], esi
mov byte [ebp + 0x73], 0
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x1c], ebx
call fcn.0043717e
cmp dword [ebp + 0x20], ebx
lea eax, [ebp + 0x58]
mov dword [ebp - 0x34], eax
lea eax, [ebp + 0x70]
mov dword [ebp + 0x58], ebx
mov dword [ebp - 0x4c], eax
jl 0x450584
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00439fac
test eax, eax
pop ecx
pop ecx
jle 0x450a8b
movzx eax, byte [ebp + 0x20]
mov dword [ebp + 0x20], eax
jmp 0x450a8b
cmp byte [ebp + 0x33], 0
je 0x4505a2
push dword [ebp + 0x60]
push dword [ebp + 0x14]
call fcn.0043a588
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x450a8b
test byte [ebp + 0x4c], 0x80
je 0x450768
mov esi, dword [ebp + 0x60]
push 0x26
pop eax
or edi, 0xffffffff
cmp word [esi], ax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x3c], esi
mov byte [ebp + 0x4b], 0
jne 0x450691
push 2
mov byte [ebp + 0x4b], 1
pop ecx
cmp ax, 0x3b
je 0x4505fa
cmp ax, 0x2c
je 0x4505fa
cmp ax, 0x3a
je 0x4505fa
cmp ax, 0x40
je 0x4505fa
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x3c], esi
jne 0x4505d5
mov ax, word [esi]
cmp ax, bx
je 0x45060a
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x3c], esi
cmp ax, 0x40
mov dword [ebp + 0x28], esi
jne 0x450647
mov ax, word [esi]
cmp ax, bx
je 0x450647
cmp ax, 0x3b
je 0x45063a
cmp ax, 0x2c
je 0x45063a
cmp ax, 0x3a
je 0x45063a
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x3c], esi
jne 0x45061b
cmp word [esi], bx
je 0x450647
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x3c], esi
mov ecx, dword [ebp + 0x14]
push edi
push ebx
push dword [ebp + 0x60]
call fcn.0040d05d
cmp eax, ebx
je 0x4506b3
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0xc]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x28]
and edi, 0x3fffffff
push eax
mov dword [ebp + 0x38], edi
call fcn.00439f88
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
jl 0x4506b3
mov eax, dword [ebp - 0x30]
jg 0x450687
cmp eax, ebx
jbe 0x4506b3
add dword [ebp + 0x60], eax
sub edi, eax
mov dword [ebp + 0x38], edi
jmp 0x4506b3
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x3c]
push eax
call fcn.00439f88
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x3c]
pop ecx
mov dword [ebp + 0x60], eax
cmp word [esi], bx
pop ecx
je 0x4506b3
inc esi
inc esi
mov dword [ebp + 0x3c], esi
cmp dword [ebp + 0x60], ebx
jne 0x4506c6
mov dword [ebp + 0x60], 0x49895e
xor esi, esi
jmp 0x450a8b
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x4506d6
inc esi
inc esi
mov dword [ebp + 0x3c], esi
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x3c]
push eax
call fcn.00439fac
cmp eax, 1
pop ecx
pop ecx
jge 0x45070d
cmp byte [ebp + 0x4b], 0
jne 0x45071e
test bl, bl
push dword [ebp + 0x60]
je 0x450701
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x450721
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x450721
cmp byte [ebp + 0x4b], 0
je 0x45071e
mov esi, dword [ebp + 0x38]
cmp esi, edi
jle 0x450721
mov esi, edi
jmp 0x450721
mov esi, dword [ebp + 0x38]
xor ebx, ebx
cmp esi, ebx
jl 0x450bed
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 0x81
jne 0x450a8b
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x60]
push 0xffffffffffffffff
push ebx
push dword [ebp + 8]
call fcn.0040d05d
cmp eax, ebx
je 0x450bf7
cmp dword [eax + 0xc], ebx
jge 0x450c0a
mov dword [eax + 4], ebx
jmp 0x450c0a
xor edi, edi
fldz
xor ebx, ebx
fstp qword [ebp - 0x28]
cmp dword [ebp + 0x4c], edi
mov dword [ebp + 0x3c], edi
je 0x4509ae
mov ecx, dword [ebp - 0x14]
push edi
push 0x2c
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0042d9ac
mov ecx, dword [ebp + 0x14]
push 0xffffffffffffffff
push edi
push dword [ebp + 8]
call fcn.0040d05d
cmp eax, edi
je 0x450bed
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
lea ecx, [eax + 0xc]
mov eax, dword [ecx]
mov esi, eax
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 8
mov dword [ebp + 0x38], esi
jne 0x45080f
push dword [ebp - 8]
push esi
push dword [ebp - 0x14]
call fcn.004394ef
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp word [eax], bx
je 0x450c24
push dword [edi]
lea eax, [ebp - 0xbc]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0xbc]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x450a8b
cmp dword [ebp + 0x4c], 4
jne 0x4508d1
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
push dword [ebp + 0x50]
call fcn.0040d05d
test eax, eax
je 0x450a8b
cmp dword [eax + 0xc], 0
jge 0x450a8b
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x5c], esi
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x5c]
lea edi, [eax + ecx]
mov eax, dword [ebx + 0xc]
mov esi, eax
and esi, 0x3fffffff
test eax, eax
jge 0x450864
cmp edi, esi
jg 0x450bed
mov eax, edi
sub eax, esi
test eax, eax
jle 0x45089e
lea eax, [edi + 1]
cdq
sub eax, edx
sar eax, 1
add eax, 2
lea ecx, [ebx + 4]
push eax
mov dword [ebp + 0x7c], eax
call fcn.004371c5
mov eax, dword [ebp + 0x7c]
add eax, eax
sub eax, esi
push eax
mov eax, dword [ebx + 4]
add eax, esi
push 0
push eax
call fcn.004832e0
add esp, 0xc
mov dword [ebx + 0xc], edi
cmp dword [ebp + 0x4c], 4
jne 0x4508b7
mov eax, dword [ebp + 0x5c]
add eax, 3
and eax, 0xfffffffe
cmp eax, esi
mov dword [ebp + 0x5c], eax
jle 0x4508b7
mov dword [ebp + 0x5c], esi
push dword [ebp + 0x5c]
mov eax, dword [ebx + 4]
add eax, dword [ebp + 0x3c]
push dword [ebp + 0x28]
push eax
call fcn.00410b58
add esp, 0xc
jmp 0x450c24
cmp dword [ebp + 0x4c], 1
jne 0x450938
sar eax, 1
and eax, 0x1fffffff
mov esi, eax
lea edi, [esi + esi*4]
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00437099
mov ebx, dword [ebp + 0x58]
xor eax, eax
push eax
push eax
push edi
push ebx
push esi
push dword [ebp + 0x60]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test esi, esi
jge 0x45090e
xor esi, esi
jmp 0x450914
cmp esi, edi
jle 0x450914
mov esi, edi
lea eax, [esi + 1]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov byte [esi + ebx], 0
call fcn.004371c5
mov eax, dword [ebp + 0x58]
and word [eax + edi*2], 0
jmp 0x45097c
cmp dword [ebp + 0x4c], 2
jne 0x450988
mov esi, dword [ebp + 0x38]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004371c5
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4afb54]
mov esi, eax
cmp esi, edi
jge 0x450967
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004371c5
mov eax, dword [ebp + 0x58]
add esi, esi
mov word [esi + eax], di
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x450a8b
cmp dword [ebp + 0x4c], 0x20
jne 0x450c24
mov eax, dword [edi]
mov dword [ebp + 0x60], eax
mov esi, dword [ecx]
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x4c], ecx
mov byte [ebp + 0x73], 1
and esi, 0x3fffffff
jmp 0x450a8b
cmp byte [ebp + 0x67], 0
je 0x4509da
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x4509da
xor ecx, ecx
mov cl, byte [ebp - 0x38]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 8]
call fcn.00441a24
mov ecx, dword [ebp + 0x14]
push eax
call fcn.0044fa57
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, edi
jl 0x4509ff
lea ebx, [eax + 1]
mov ecx, dword [ebp + 0x14]
push edi
push edi
lea eax, [ebp + 0x1c]
push eax
push dword [ebp + 0x60]
call fcn.0043eb92
dec ebx
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x60], eax
jne 0x4509e5
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x450a21
lea eax, [ebp + 0x38]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004464f0
mov esi, dword [ebp + 0x38]
add esp, 0x10
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x58]
sete byte [ebp + 0x73]
cmp dword [ebp + 0x44], edi
jne 0x450c2b
cmp dword [ebp + 0x5c], edi
jne 0x450d55
cmp byte [ebp + 0x57], 0
je 0x450a7b
cmp esi, edi
jle 0x450f07
mov ebx, 0x4b069c
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
push dword [ebp + 0x50]
call fcn.0040d05d
cmp eax, edi
mov dword [ebp + 0x38], eax
jne 0x450dfe
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x450a8b
cmp byte [ebp + 0x56], 0
je 0x450a8b
cmp byte [ebp + 0x4a], 0
je 0x450ebf
xor eax, eax
cmp dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
je 0x450ac3
cmp byte [ebp + 0x7c], al
jne 0x450ac3
mov ecx, dword [ebp + 0x34]
test byte [ecx + 9], 0xf
jne 0x450ac3
cmp byte [ebp + 0x73], al
jne 0x450ac3
cmp dword [ebp + 0x20], eax
jge 0x450ac3
cmp byte [ebp + 0x56], al
jne 0x450ac3
push dword [ebp + 0x60]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x450b90
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
push dword [ebp + 0x50]
call fcn.0040d05d
mov edi, eax
test edi, edi
mov ebx, edi
jne 0x450b2b
cmp dword [ebp + 0x20], eax
jge 0x450b22
cmp byte [ebp + 0x73], al
mov eax, 0x497994
jne 0x450aed
mov eax, dword [ebp + 0x60]
mov cl, byte [ebp + 0x73]
neg cl
sbb ecx, ecx
not ecx
and ecx, esi
push ecx
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x50]
call fcn.004110dc
cmp dword [ebp - 0xc], 0
mov edi, eax
je 0x450b1e
test edi, edi
je 0x450b22
push dword [ebp - 0xc]
lea ecx, [edi + 8]
call fcn.00441a80
test edi, edi
jne 0x450b2b
mov dword [ebp + 0x28], 1
jmp 0x450b90
cmp dword [ebp + 0x20], 0
jl 0x450b4a
mov eax, dword [edi + 0xc]
and eax, 0x3fffffff
push eax
push dword [ebp + 0x20]
push dword [edi + 4]
call fcn.004832e0
add esp, 0xc
jmp 0x450b90
cmp byte [ebp + 0x56], 0
jne 0x450b90
test ebx, ebx
je 0x450b61
cmp dword [ebx + 0xc], 0xfffff000
jge 0x450b61
and dword [ebx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x450b81
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [edi + 4]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0xc], esi
jmp 0x450b90
test ebx, ebx
je 0x450b90
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402c67
cmp dword [ebp], 0
jle 0x450f04
lea ecx, [ebp + 0x58]
call fcn.00431c4c
lea ecx, [ebp + 8]
call fcn.00431c4c
lea ecx, [ebp + 0x1c]
call fcn.00431c4c
mov esi, dword [ebp - 0x40]
xor ebx, ebx
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x3c]
push dword [ebp + 0x10]
dec dword [ebp]
push dword [ebp - 0x48]
mov dword [ebp + 0x50], eax
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp - 4]
mov dword [ebp + 0x60], esi
push dword [ebp - 0x44]
push esi
call fcn.00434740
add esp, 0x1c
inc dword [ebp + 0x10]
inc dword [ebp - 4]
jmp 0x450523
mov edi, 0x80070057
jmp 0x450f07
mov ecx, dword [ebp + 0x34]
push ebx
push 0xffffffffffffffff
push 0x497994
push dword [ebp + 0x50]
call fcn.004110dc
or esi, 0x80000000
mov dword [eax + 0xc], esi
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.00431c4c
xor edi, edi
jmp 0x450f07
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x2c], eax
call fcn.0043717e
mov ecx, dword [ebp - 0x14]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x2c]
push eax
call fcn.0042d9ac
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x450c5f
lea ecx, [ebp + 0x7c]
call fcn.00431c4c
jmp 0x450f07
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp + 0x70], edi
call fcn.00439fac
mov eax, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
lea ebx, [esi + eax]
push dword [ebp + 0x50]
mov word [ebp - 0x15c], di
call fcn.0040d05d
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x450ca7
mov ecx, dword [eax + 0xc]
and ecx, 0x3fffffff
cmp ecx, ebx
jl 0x450d33
mov eax, dword [eax + 4]
push dword [ebp + 0x5c]
add eax, esi
push eax
lea eax, [ebp - 0x7c]
push eax
mov dword [ebp + 0x70], edi
call fcn.00410b58
add esp, 0xc
cmp dword [ebp - 0x18], edi
je 0x450cdb
fld dword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x49f54c
jmp 0x450cf2
cmp dword [ebp - 0x1c], edi
jne 0x450ce5
cmp dword [ebp - 0x10], edi
je 0x450d01
fld qword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x49f544
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x450d30
cmp dword [ebp + 0x44], 0x64
lea eax, [ebp - 0x15c]
jne 0x450d21
push dword [ebp - 0x7c]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x450d33
push dword [ebp + 0x40]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push eax
call fcn.00478179
add esp, 0x10
mov ecx, dword [ebp + 0x34]
lea eax, [ebp - 0x15c]
push eax
push dword [ebp + 0x7c]
call fcn.00436b54
lea ecx, [ebp + 0x7c]
call fcn.00431c4c
mov edi, dword [ebp + 0x70]
jmp 0x450f07
cmp dword [ebp - 0x18], edi
mov dword [ebp + 0x7c], eax
je 0x450d72
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00439d81
fld qword [ebp - 0x28]
fstp dword [ebp - 0x7c]
jmp 0x450d9e
cmp dword [ebp - 0x1c], edi
jne 0x450d7c
cmp dword [ebp - 0x10], edi
je 0x450d91
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00439d81
fld qword [ebp - 0x28]
fstp qword [ebp - 0x7c]
jmp 0x450d9e
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.00439f88
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x450dbe
add dword [ebp + 0x7c], 2
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x3c], edi
call fcn.00439fac
pop ecx
pop ecx
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
push dword [ebp + 0x50]
call fcn.0040d05d
mov ebx, eax
cmp ebx, edi
jne 0x450844
mov ecx, dword [ebp + 0x34]
push 0
push 0xffffffffffffffff
push 0x497994
push dword [ebp + 0x50]
call fcn.004110dc
mov ebx, eax
test ebx, ebx
jne 0x450844
xor edi, edi
inc edi
jmp 0x450f07
mov edx, dword [eax + 0xc]
mov ecx, edx
and ecx, 0x3fffffff
test edx, edx
lea edi, [eax + 4]
mov eax, dword [edi]
setl byte [ebp + 0x7f]
cmp byte [ebp + 0x7f], 0
mov dword [ebp + 0x70], ecx
mov dword [ebp + 0x78], eax
je 0x450e23
and dword [edi], 0
mov eax, dword [ebp + 0x70]
add eax, esi
mov dword [ebp + 0x28], eax
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
lea eax, [ebx + 2]
push eax
mov ecx, edi
call fcn.004371c5
mov eax, dword [edi]
add ebx, ebx
and word [ebx + eax + 2], 0
mov eax, dword [edi]
and word [ebx + eax], 0
cmp byte [ebp + 0x57], 1
mov edi, dword [edi]
jne 0x450e72
cmp byte [ebp + 0x7f], 0
je 0x450e6b
push dword [ebp + 0x70]
push dword [ebp + 0x78]
push edi
call fcn.00410b58
add esp, 0xc
mov eax, dword [ebp + 0x70]
add edi, eax
jmp 0x450e99
cmp byte [ebp + 0x57], 2
jne 0x450ea6
cmp byte [ebp + 0x7f], 0
push dword [ebp + 0x70]
lea eax, [edi + esi]
je 0x450e8f
push dword [ebp + 0x78]
push eax
call fcn.00410b58
jmp 0x450e96
push edi
push eax
call fcn.00410b0e
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00410b58
add esp, 0xc
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x38]
push 0x4b069c
mov dword [ecx + 0xc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x450c24
mov ecx, dword [ebp + 0x34]
push 0xffffffffffffffff
push dword [ebp + 0x18]
push dword [ebp + 0x50]
call fcn.0040d05d
mov esi, eax
test esi, esi
je 0x450c24
cmp dword [esi + 0xc], 0xfffff000
jge 0x450eee
mov eax, dword [esi + 4]
and word [eax], 0
jmp 0x450c24
push 0x497994
lea ecx, [esi + 4]
call fcn.00441a24
and dword [esi + 0xc], 0
jmp 0x450c24
mov edi, dword [ebp + 0x28]
lea ecx, [ebp + 0x58]
call fcn.00431c4c
lea ecx, [ebp + 8]
call fcn.00431c4c
lea ecx, [ebp + 0x1c]
call fcn.00431c4c
lea ecx, [ebp + 0xc]
call fcn.00431c4c
mov eax, 0x4b069c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 8]
call fcn.00431c4c
lea ecx, [ebp + 4]
call fcn.00431c4c
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10