Function at 0x449c76
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 + 0x30], 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 + 0x37], cl
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x20], 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 + 0x14], ecx
mov dword [ebp + 0xc], ecx
mov dword [ebp - 4], ecx
mov dword [ebp + 8], str._I64d
pop ebx
je 0x44a3d8
cmp word [esi], cx
je 0x44a3d8
xor edi, edi
mov di, word [esi]
mov eax, edi
call fcn.00402b57
test al, al
jne 0x44a3c3
cmp di, 0x2e
je 0x44a3b6
cmp di, 0x24
je 0x44a3b6
cmp di, 0x25
je 0x44a3b6
cmp di, 0x2a
jne 0x449d2a
or byte [ebp + 0x67], 4
jmp 0x44a3b6
push 0x7e
pop ecx
cmp di, cx
jne 0x449d7b
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x449d45
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x44a3b6
cmp di, cx
jne 0x449d7b
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x449d59
or byte [ebp + 0x67], 8
jmp 0x449d3e
cmp di, cx
jne 0x449d7b
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x449d6d
or byte [ebp + 0x67], 0xa
jmp 0x449d3e
cmp di, cx
jne 0x449d7b
or byte [ebp + 0x67], 1
jmp 0x44a3b6
push ebx
push esi
push str._env
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449d9d
add esi, 6
mov dword [ebp - 0x38], 0x40
jmp 0x44a3b6
push ebx
push esi
push str._raw
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449dbf
add esi, 6
mov dword [ebp + 4], 0x40
jmp 0x44a3b6
cmp di, 0x3c
jne 0x449dce
mov byte [ebp + 0x57], 1
jmp 0x44a3b6
cmp di, 0x3e
jne 0x449ddd
mov byte [ebp + 0x57], 2
jmp 0x44a3b6
push ebx
push esi
push str._def
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449dfc
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x44a3b6
push ebx
push esi
push str._tom
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449e1e
add esi, 6
mov dword [ebp + 0x4c], 1
jmp 0x44a3b6
push ebx
push esi
push str._tow
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449e40
add esi, 6
mov dword [ebp + 0x4c], 2
jmp 0x44a3b6
push 5
push esi
push str._copy
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449e5f
add esi, 8
mov dword [ebp + 0x4c], ebx
jmp 0x44a3b6
push 5
push esi
push str._addr
call fcn.0042ecb0
add esp, 0xc
test al, al
push 8
je 0x449e80
pop eax
add esi, eax
mov dword [ebp + 0x4c], eax
jmp 0x44a3b6
pop edi
push edi
push esi
push str._mkdummy
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449ea3
add esi, 0xe
mov dword [ebp + 0x4c], 0x81
jmp 0x44a3b6
push 5
push esi
push str._make
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449ec5
add esi, edi
mov dword [ebp + 0x4c], 0x80
jmp 0x44a3b6
push 5
push esi
push str._swap
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449ee7
add esi, edi
mov dword [ebp + 0x4c], 0x20
jmp 0x44a3b6
push 5
push esi
push str._char
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449f09
mov dword [ebp + 0x5c], 1
add esi, edi
jmp 0x44a3b6
push 6
push esi
push str._wchar
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449f2c
mov dword [ebp + 0x5c], 2
add esi, 0xa
jmp 0x44a3b6
push 6
push esi
push str._short
call fcn.0042ecb0
add esp, 0xc
test al, al
jne 0x449f1d
push ebx
push esi
push str._ptr
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449f5e
mov dword [ebp + 0x5c], ebx
add esi, 6
jmp 0x44a3b6
push 6
push esi
push str._float
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449f7a
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x5c], ebx
jmp 0x449f24
push 7
push esi
push str._double
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449f9c
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
add esi, 0xc
jmp 0x44a3b6
push edi
push esi
push str._ldouble
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449fbd
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x5c], edi
add esi, 0xe
jmp 0x44a3b6
push 6
push esi
push 0x4959ec
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449fdc
add esi, 0xa
mov dword [ebp + 0x5c], edi
jmp 0x44a3b6
push 9
push esi
push str._longlong
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x449ff5
add esi, 0x10
jmp 0x449fd4
push 5
push esi
push str._long
call fcn.0042ecb0
add esp, 0xc
test al, al
jne 0x44a01d
push 5
push esi
push str._long
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a025
mov dword [ebp + 0x5c], ebx
jmp 0x449f02
push 5
push esi
push str._zero
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a045
add esi, 0xa
and dword [ebp + 0x30], 0
jmp 0x44a3b6
push 7
push esi
push str._intsys
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a061
add esi, 0xc
jmp 0x44a1f7
push ebx
push esi
push str._int
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a093
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44a088
cmp ax, 0x5a
jbe 0x44a093
add esi, 6
mov dword [ebp + 0x5c], ebx
jmp 0x44a3b6
push 5
push esi
push 0x4959b8
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a0be
xor eax, eax
add esi, edi
inc eax
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 8], str.0x_I64X
jmp 0x44a3b6
push 6
push esi
push 0x4959a0
call fcn.0042ecb0
add esp, 0xc
test al, al
jne 0x44a0e6
push 6
push esi
push 0x495998
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a0ee
push 2
add esi, 0xa
pop eax
jmp 0x44a0ac
push ebx
push esi
push 0x495990
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a110
add esi, 6
mov dword [ebp + 0x44], 0x64
mov dword [ebp + 0x5c], ebx
jmp 0x44a0b2
push 6
push esi
push 0x495988
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a135
mov dword [ebp - 0x18], ebx
add esi, 0xa
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44a3b6
push 7
push esi
push 0x495980
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a15a
add esi, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x44], edi
jmp 0x44a3b6
push edi
push esi
push 0x495974
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a175
add esi, 0xe
mov dword [ebp - 0x10], edi
jmp 0x44a14f
push 6
push esi
push 0x49596c
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a18e
add esi, 0xa
jmp 0x44a14f
push 9
push esi
push 0x495960
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a1a7
add esi, 0x10
jmp 0x44a14f
push 5
push esi
push 0x495958
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a1c8
add esi, edi
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44a0b2
push 6
push esi
push str._intpe
call fcn.0042ecb0
add esp, 0xc
test al, al
jne 0x44a127
push 7
push esi
push 0x495948
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a20c
mov dword [ebp + 0x44], ebx
cmp byte [0x4a5b85], 3
mov dword [ebp + 0x5c], ebx
jne 0x44a3b6
jmp 0x449fd4
push ebx
push esi
push 0x495940
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a23b
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44a233
cmp ax, 0x5a
jbe 0x44a23b
add esi, 6
jmp 0x44a12a
push ebx
push esi
push str._ret
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a290
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x58], esi
jne 0x44a265
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0041030b
add esp, 4
test al, al
je 0x44a289
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.004358e8
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x44a3b6
push ebx
push esi
push str._get
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a2d1
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x20], 1
mov dword [ebp + 0x58], esi
jne 0x44a2ba
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0041030b
add esp, 4
test al, al
je 0x44a289
lea eax, [ebp + 0x20]
jmp 0x44a27a
push 3
push esi
push 0x49592c
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a2f0
add esi, ebx
mov byte [ebp + 0x37], 1
jmp 0x44a3b6
push 2
pop edi
push edi
push esi
push 0x495928
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a329
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.004358e8
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
jmp 0x44a3b4
push edi
push esi
push 0x495924
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x44a3b6
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
call fcn.004358e8
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44a367
call fcn.00402b57
test al, al
jne 0x44a367
add dword [ebp + 0x58], edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.004358e8
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44a38d
call fcn.00402b57
test al, al
jne 0x44a38d
add dword [ebp + 0x58], edi
mov esi, dword [ebp + 0x14]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x58]
push eax
mov dword [ebp - 4], esi
call fcn.004358e8
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 0x44a3b6
sub esi, edi
inc esi
inc esi
xor ecx, ecx
cmp word [esi], cx
jne 0x449ce9
cmp dword [ebp + 4], ecx
je 0x44a3d8
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.0040415a
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push eax
call fcn.0042dd40
mov eax, dword [ebp + 0x24]
pop ecx
jmp 0x44a3f5
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x24], eax
cmp word [eax], 0x26
je 0x44a3ed
lea ecx, [ebp + 4]
call fcn.00432cb7
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x50], eax
xor ebx, ebx
jmp 0x44a418
cmp cx, 0x3d
je 0x44a420
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44a40d
mov dword [ebp + 0x60], 0x48e984
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x56], 0
je 0x44a439
mov byte [ebp + 0x56], 1
jmp 0x44a441
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x50]
call fcn.0040c79a
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x7e
pop ecx
jne 0x44a491
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0xc], edx
jmp 0x44a467
cmp cx, 0x7e
je 0x44a472
inc eax
inc eax
mov dword [ebp + 0x50], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44a45f
cmp word [eax], 0x7e
je 0x44a482
mov edi, 0x80070057
jmp 0x44afbd
mov word [eax], bx
add dword [ebp + 0x50], 2
cmp word [edx], bx
jne 0x44a491
mov dword [ebp - 0xc], ebx
lea ecx, [ebp - 8]
call fcn.00432cb7
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.00429b46
push 0x3b
push 0x2c
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.00429b46
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
je 0x44a4e2
cmp word [eax], bx
jne 0x44a4e2
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x44a4e2
xor edi, edi
jmp 0x44afb5
cmp byte [ebp + 0x7c], 2
mov edi, esi
setge byte [ebp + 0x4b]
mov al, byte [ebp + 0x4b]
neg al
mov ecx, esi
mov dword [ebp + 0x18], edi
mov dword [ebp + 0x38], ecx
sbb eax, eax
and eax, esi
cmp dword [ebp + 0x28], ebx
mov dword [ebp + 0x1c], eax
jle 0x44a523
dec dword [ebp + 0x28]
js 0x44a51a
mov eax, dword [ebp + 0x28]
inc eax
sub dword [ebp + 0x28], eax
dec eax
mov ecx, dword [ecx + 0x28]
jne 0x44a511
mov dword [ebp + 0x38], ecx
cmp byte [ebp + 0x4b], 0
je 0x44a523
mov dword [ebp + 0x1c], ecx
mov eax, dword [ebp + 0x20]
cmp eax, ebx
jle 0x44a537
dec eax
js 0x44a537
inc eax
dec eax
mov edi, dword [edi + 0x28]
jne 0x44a52e
mov dword [ebp + 0x18], edi
cmp byte [ebp + 0x56], 0
je 0x44a544
mov byte [ebp + 0x57], 0
mov dword [ebp + 0x4c], ebx
push 0x4a6658
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 0x44a5a5
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.00432cfe
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 0x44ac39
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 + 0x10]
mov dword [ebp + 0x3c], esi
mov byte [ebp + 0x73], 0
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x20], ebx
call fcn.00432cb7
cmp dword [ebp + 0x30], 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 0x44a606
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004358e8
test eax, eax
pop ecx
pop ecx
jle 0x44ab0d
movzx eax, byte [ebp + 0x30]
mov dword [ebp + 0x30], eax
jmp 0x44ab0d
cmp byte [ebp + 0x37], 0
je 0x44a624
push dword [ebp + 0x60]
push dword [ebp + 0x18]
call fcn.00435ec4
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x44ab0d
test byte [ebp + 0x4c], 0x80
je 0x44a7ea
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 + 0x3c], ebx
mov dword [ebp + 0x40], esi
mov byte [ebp + 0x4a], 0
jne 0x44a713
push 2
mov byte [ebp + 0x4a], 1
pop ecx
cmp ax, 0x3b
je 0x44a67c
cmp ax, 0x2c
je 0x44a67c
cmp ax, 0x3a
je 0x44a67c
cmp ax, 0x40
je 0x44a67c
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44a657
mov ax, word [esi]
cmp ax, bx
je 0x44a68c
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x40], esi
cmp ax, 0x40
mov dword [ebp + 0x2c], esi
jne 0x44a6c9
mov ax, word [esi]
cmp ax, bx
je 0x44a6c9
cmp ax, 0x3b
je 0x44a6bc
cmp ax, 0x2c
je 0x44a6bc
cmp ax, 0x3a
je 0x44a6bc
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44a69d
cmp word [esi], bx
je 0x44a6c9
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x40], esi
mov ecx, dword [ebp + 0x18]
push edi
push ebx
push dword [ebp + 0x60]
call fcn.0040c526
cmp eax, ebx
je 0x44a735
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0xc]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x2c]
and edi, 0x3fffffff
push eax
mov dword [ebp + 0x3c], edi
call fcn.004358c4
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
jl 0x44a735
mov eax, dword [ebp - 0x30]
jg 0x44a709
cmp eax, ebx
jbe 0x44a735
add dword [ebp + 0x60], eax
sub edi, eax
mov dword [ebp + 0x3c], edi
jmp 0x44a735
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004358c4
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x40]
pop ecx
mov dword [ebp + 0x60], eax
cmp word [esi], bx
pop ecx
je 0x44a735
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp dword [ebp + 0x60], ebx
jne 0x44a748
mov dword [ebp + 0x60], 0x48f6be
xor esi, esi
jmp 0x44ab0d
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x44a758
inc esi
inc esi
mov dword [ebp + 0x40], esi
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004358e8
cmp eax, 1
pop ecx
pop ecx
jge 0x44a78f
cmp byte [ebp + 0x4a], 0
jne 0x44a7a0
test bl, bl
push dword [ebp + 0x60]
je 0x44a783
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x44a7a3
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x44a7a3
cmp byte [ebp + 0x4a], 0
je 0x44a7a0
mov esi, dword [ebp + 0x3c]
cmp esi, edi
jle 0x44a7a3
mov esi, edi
jmp 0x44a7a3
mov esi, dword [ebp + 0x3c]
xor ebx, ebx
cmp esi, ebx
jl 0x44ac6f
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 0x81
jne 0x44ab0d
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x60]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x10]
call fcn.0040c526
cmp eax, ebx
je 0x44ac79
cmp dword [eax + 0xc], ebx
jge 0x44ac8c
mov dword [eax + 4], ebx
jmp 0x44ac8c
xor edi, edi
fldz
xor ebx, ebx
fstp qword [ebp - 0x28]
cmp dword [ebp + 0x4c], edi
mov dword [ebp + 0x40], edi
je 0x44aa30
mov ecx, dword [ebp - 0x14]
push edi
push 0x2c
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00429b46
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push edi
push dword [ebp + 0x10]
call fcn.0040c526
cmp eax, edi
je 0x44ac6f
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 + 0x3c], esi
jne 0x44a891
push dword [ebp - 8]
push esi
push dword [ebp - 0x14]
call fcn.00434ea0
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp word [eax], bx
je 0x44aca6
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 0x44ab0d
cmp dword [ebp + 0x4c], 4
jne 0x44a953
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c526
test eax, eax
je 0x44ab0d
cmp dword [eax + 0xc], 0
jge 0x44ab0d
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x5c], esi
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x5c]
lea edi, [eax + ecx]
mov eax, dword [ebx + 0xc]
mov esi, eax
and esi, 0x3fffffff
test eax, eax
jge 0x44a8e6
cmp edi, esi
jg 0x44ac6f
mov eax, edi
sub eax, esi
test eax, eax
jle 0x44a920
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.00432cfe
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.00479cf0
add esp, 0xc
mov dword [ebx + 0xc], edi
cmp dword [ebp + 0x4c], 4
jne 0x44a939
mov eax, dword [ebp + 0x5c]
add eax, 3
and eax, 0xfffffffe
cmp eax, esi
mov dword [ebp + 0x5c], eax
jle 0x44a939
mov dword [ebp + 0x5c], esi
push dword [ebp + 0x5c]
mov eax, dword [ebx + 4]
add eax, dword [ebp + 0x40]
push dword [ebp + 0x2c]
push eax
call fcn.0047a010
add esp, 0xc
jmp 0x44aca6
cmp dword [ebp + 0x4c], 1
jne 0x44a9ba
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.00432b85
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 0x44a990
xor esi, esi
jmp 0x44a996
cmp esi, edi
jle 0x44a996
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.00432cfe
mov eax, dword [ebp + 0x58]
and word [eax + edi*2], 0
jmp 0x44a9fe
cmp dword [ebp + 0x4c], 2
jne 0x44aa0a
mov esi, dword [ebp + 0x3c]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00432cfe
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
cmp esi, edi
jge 0x44a9e9
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00432cfe
mov eax, dword [ebp + 0x58]
add esi, esi
mov word [esi + eax], di
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x44ab0d
cmp dword [ebp + 0x4c], 0x20
jne 0x44aca6
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 0x44ab0d
cmp byte [ebp + 0x67], 0
je 0x44aa5c
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44aa5c
xor ecx, ecx
mov cl, byte [ebp - 0x38]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x10]
call fcn.0043cd64
mov ecx, dword [ebp + 0x18]
push eax
call fcn.00449b7c
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, edi
jl 0x44aa81
lea ebx, [eax + 1]
mov ecx, dword [ebp + 0x18]
push edi
push edi
lea eax, [ebp + 0x20]
push eax
push dword [ebp + 0x60]
call fcn.00439f34
dec ebx
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x60], eax
jne 0x44aa67
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44aaa3
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00441799
mov esi, dword [ebp + 0x3c]
add esp, 0x10
mov eax, dword [ebp + 0x60]
cmp eax, dword [ebp + 0x58]
sete byte [ebp + 0x73]
cmp dword [ebp + 0x44], edi
jne 0x44acad
cmp dword [ebp + 0x5c], edi
jne 0x44add7
cmp byte [ebp + 0x57], 0
je 0x44aafd
cmp esi, edi
jle 0x44af89
mov ebx, 0x4a6658
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c526
cmp eax, edi
mov dword [ebp + 0x3c], eax
jne 0x44ae80
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44ab0d
cmp byte [ebp + 0x56], 0
je 0x44ab0d
cmp byte [ebp + 0x4b], 0
je 0x44af41
xor eax, eax
cmp dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
je 0x44ab45
cmp byte [ebp + 0x7c], al
jne 0x44ab45
mov ecx, dword [ebp + 0x38]
test byte [ecx + 0xb], 0xf
jne 0x44ab45
cmp byte [ebp + 0x73], al
jne 0x44ab45
cmp dword [ebp + 0x30], eax
jge 0x44ab45
cmp byte [ebp + 0x56], al
jne 0x44ab45
push dword [ebp + 0x60]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x44ac12
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c526
mov edi, eax
test edi, edi
mov ebx, edi
jne 0x44abad
cmp dword [ebp + 0x30], eax
jge 0x44aba4
cmp byte [ebp + 0x73], al
mov eax, 0x48e984
jne 0x44ab6f
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 + 0x38]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x50]
call fcn.0040c489
cmp dword [ebp - 0xc], 0
mov edi, eax
je 0x44aba0
test edi, edi
je 0x44aba4
push dword [ebp - 0xc]
lea ecx, [edi + 8]
call fcn.0043cdc0
test edi, edi
jne 0x44abad
mov dword [ebp + 0x2c], 1
jmp 0x44ac12
cmp dword [ebp + 0x30], 0
jl 0x44abcc
mov eax, dword [edi + 0xc]
and eax, 0x3fffffff
push eax
push dword [ebp + 0x30]
push dword [edi + 4]
call fcn.00479cf0
add esp, 0xc
jmp 0x44ac12
cmp byte [ebp + 0x56], 0
jne 0x44ac12
test ebx, ebx
je 0x44abe3
cmp dword [ebx + 0xc], 0xfffff000
jge 0x44abe3
and dword [ebx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x44ac03
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 0x44ac12
test ebx, ebx
je 0x44ac12
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402bcc
cmp dword [ebp], 0
jle 0x44af86
lea ecx, [ebp + 0x58]
call fcn.0042dd2d
lea ecx, [ebp + 0x10]
call fcn.0042dd2d
lea ecx, [ebp + 0x20]
call fcn.0042dd2d
mov esi, dword [ebp - 0x40]
xor ebx, ebx
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x3c]
push dword [ebp + 0x14]
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.00430318
add esp, 0x1c
inc dword [ebp + 0x14]
inc dword [ebp - 4]
jmp 0x44a5a5
mov edi, 0x80070057
jmp 0x44af89
mov ecx, dword [ebp + 0x38]
push ebx
push 0xffffffffffffffff
push 0x48e984
push dword [ebp + 0x50]
call fcn.0040c489
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.0042dd2d
xor edi, edi
jmp 0x44af89
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x24], eax
call fcn.00432cb7
mov ecx, dword [ebp - 0x14]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00429b46
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x44ace1
lea ecx, [ebp + 0x7c]
call fcn.0042dd2d
jmp 0x44af89
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x70], edi
call fcn.004358e8
mov eax, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
lea ebx, [esi + eax]
push dword [ebp + 0x50]
mov word [ebp - 0x15c], di
call fcn.0040c526
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x44ad29
mov ecx, dword [eax + 0xc]
and ecx, 0x3fffffff
cmp ecx, ebx
jl 0x44adb5
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.0047a010
add esp, 0xc
cmp dword [ebp - 0x18], edi
je 0x44ad5d
fld dword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x49591c
jmp 0x44ad74
cmp dword [ebp - 0x1c], edi
jne 0x44ad67
cmp dword [ebp - 0x10], edi
je 0x44ad83
fld qword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x495914
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x44adb2
cmp dword [ebp + 0x44], 0x64
lea eax, [ebp - 0x15c]
jne 0x44ada3
push dword [ebp - 0x7c]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44adb5
push dword [ebp + 8]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push eax
call fcn.0046f87d
add esp, 0x10
mov ecx, dword [ebp + 0x38]
lea eax, [ebp - 0x15c]
push eax
push dword [ebp + 0x7c]
call fcn.00432698
lea ecx, [ebp + 0x7c]
call fcn.0042dd2d
mov edi, dword [ebp + 0x70]
jmp 0x44af89
cmp dword [ebp - 0x18], edi
mov dword [ebp + 0x7c], eax
je 0x44adf4
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.004356bd
fld qword [ebp - 0x28]
fstp dword [ebp - 0x7c]
jmp 0x44ae20
cmp dword [ebp - 0x1c], edi
jne 0x44adfe
cmp dword [ebp - 0x10], edi
je 0x44ae13
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.004356bd
fld qword [ebp - 0x28]
fstp qword [ebp - 0x7c]
jmp 0x44ae20
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.004358c4
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x44ae40
add dword [ebp + 0x7c], 2
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x40], edi
call fcn.004358e8
pop ecx
pop ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c526
mov ebx, eax
cmp ebx, edi
jne 0x44a8c6
mov ecx, dword [ebp + 0x38]
push 0
push 0xffffffffffffffff
push 0x48e984
push dword [ebp + 0x50]
call fcn.0040c489
mov ebx, eax
test ebx, ebx
jne 0x44a8c6
xor edi, edi
inc edi
jmp 0x44af89
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 0x44aea5
and dword [edi], 0
mov eax, dword [ebp + 0x70]
add eax, esi
mov dword [ebp + 0x2c], eax
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
lea eax, [ebx + 2]
push eax
mov ecx, edi
call fcn.00432cfe
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 0x44aef4
cmp byte [ebp + 0x7f], 0
je 0x44aeed
push dword [ebp + 0x70]
push dword [ebp + 0x78]
push edi
call fcn.0047a010
add esp, 0xc
mov eax, dword [ebp + 0x70]
add edi, eax
jmp 0x44af1b
cmp byte [ebp + 0x57], 2
jne 0x44af28
cmp byte [ebp + 0x7f], 0
push dword [ebp + 0x70]
lea eax, [edi + esi]
je 0x44af11
push dword [ebp + 0x78]
push eax
call fcn.0047a010
jmp 0x44af18
push edi
push eax
call fcn.0047a350
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.0047a010
add esp, 0xc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
push 0x4a6658
mov dword [ecx + 0xc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44aca6
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c526
mov esi, eax
test esi, esi
je 0x44aca6
cmp dword [esi + 0xc], 0xfffff000
jge 0x44af70
mov eax, dword [esi + 4]
and word [eax], 0
jmp 0x44aca6
push 0x48e984
lea ecx, [esi + 4]
call fcn.0043cd64
and dword [esi + 0xc], 0
jmp 0x44aca6
mov edi, dword [ebp + 0x2c]
lea ecx, [ebp + 0x58]
call fcn.0042dd2d
lea ecx, [ebp + 0x10]
call fcn.0042dd2d
lea ecx, [ebp + 0x20]
call fcn.0042dd2d
lea ecx, [ebp + 0xc]
call fcn.0042dd2d
mov eax, 0x4a6658
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 8]
call fcn.0042dd2d
lea ecx, [ebp + 4]
call fcn.0042dd2d
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10