Function at 0x44b252
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 0x44b9b4
cmp word [esi], cx
je 0x44b9b4
xor edi, edi
mov di, word [esi]
mov eax, edi
call fcn.00402b47
test al, al
jne 0x44b99f
cmp di, 0x2e
je 0x44b992
cmp di, 0x24
je 0x44b992
cmp di, 0x25
je 0x44b992
cmp di, 0x2a
jne 0x44b306
or byte [ebp + 0x67], 4
jmp 0x44b992
push 0x7e
pop ecx
cmp di, cx
jne 0x44b357
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x44b321
or byte [ebp + 0x67], 2
mov esi, eax
jmp 0x44b992
cmp di, cx
jne 0x44b357
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x44b335
or byte [ebp + 0x67], 8
jmp 0x44b31a
cmp di, cx
jne 0x44b357
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x44b349
or byte [ebp + 0x67], 0xa
jmp 0x44b31a
cmp di, cx
jne 0x44b357
or byte [ebp + 0x67], 1
jmp 0x44b992
push ebx
push esi
push str._env
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b379
add esi, 6
mov dword [ebp - 0x38], 0x40
jmp 0x44b992
push ebx
push esi
push str._raw
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b39b
add esi, 6
mov dword [ebp + 4], 0x40
jmp 0x44b992
cmp di, 0x3c
jne 0x44b3aa
mov byte [ebp + 0x57], 1
jmp 0x44b992
cmp di, 0x3e
jne 0x44b3b9
mov byte [ebp + 0x57], 2
jmp 0x44b992
push ebx
push esi
push str._def
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b3d8
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x44b992
push ebx
push esi
push str._tom
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b3fa
add esi, 6
mov dword [ebp + 0x4c], 1
jmp 0x44b992
push ebx
push esi
push str._tow
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b41c
add esi, 6
mov dword [ebp + 0x4c], 2
jmp 0x44b992
push 5
push esi
push str._copy
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b43b
add esi, 8
mov dword [ebp + 0x4c], ebx
jmp 0x44b992
push 5
push esi
push str._addr
call fcn.0042fae7
add esp, 0xc
test al, al
push 8
je 0x44b45c
pop eax
add esi, eax
mov dword [ebp + 0x4c], eax
jmp 0x44b992
pop edi
push edi
push esi
push str._mkdummy
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b47f
add esi, 0xe
mov dword [ebp + 0x4c], 0x81
jmp 0x44b992
push 5
push esi
push str._make
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b4a1
add esi, edi
mov dword [ebp + 0x4c], 0x80
jmp 0x44b992
push 5
push esi
push str._swap
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b4c3
add esi, edi
mov dword [ebp + 0x4c], 0x20
jmp 0x44b992
push 5
push esi
push str._char
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b4e5
mov dword [ebp + 0x5c], 1
add esi, edi
jmp 0x44b992
push 6
push esi
push str._wchar
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b508
mov dword [ebp + 0x5c], 2
add esi, 0xa
jmp 0x44b992
push 6
push esi
push str._short
call fcn.0042fae7
add esp, 0xc
test al, al
jne 0x44b4f9
push ebx
push esi
push str._ptr
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b53a
mov dword [ebp + 0x5c], ebx
add esi, 6
jmp 0x44b992
push 6
push esi
push str._float
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b556
mov dword [ebp - 0x18], ebx
mov dword [ebp + 0x5c], ebx
jmp 0x44b500
push 7
push esi
push str._double
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b578
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
add esi, 0xc
jmp 0x44b992
push edi
push esi
push str._ldouble
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b599
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x5c], edi
add esi, 0xe
jmp 0x44b992
push 6
push esi
push 0x496aec
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b5b8
add esi, 0xa
mov dword [ebp + 0x5c], edi
jmp 0x44b992
push 9
push esi
push str._longlong
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b5d1
add esi, 0x10
jmp 0x44b5b0
push 5
push esi
push 0x496ad8
call fcn.0042fae7
add esp, 0xc
test al, al
jne 0x44b5f9
push 5
push esi
push 0x496ad8
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b601
mov dword [ebp + 0x5c], ebx
jmp 0x44b4de
push 5
push esi
push str._zero
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b621
add esi, 0xa
and dword [ebp + 0x30], 0
jmp 0x44b992
push 7
push esi
push str._intsys
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b63d
add esi, 0xc
jmp 0x44b7d3
push ebx
push esi
push str._int
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b66f
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44b664
cmp ax, 0x5a
jbe 0x44b66f
add esi, 6
mov dword [ebp + 0x5c], ebx
jmp 0x44b992
push 5
push esi
push 0x496ab8
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b69a
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 0x44b992
push 6
push esi
push 0x496aa0
call fcn.0042fae7
add esp, 0xc
test al, al
jne 0x44b6c2
push 6
push esi
push 0x496a98
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b6ca
push 2
add esi, 0xa
pop eax
jmp 0x44b688
push ebx
push esi
push 0x496a90
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b6ec
add esi, 6
mov dword [ebp + 0x44], 0x64
mov dword [ebp + 0x5c], ebx
jmp 0x44b68e
push 6
push esi
push 0x496a88
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b711
mov dword [ebp - 0x18], ebx
add esi, 0xa
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44b992
push 7
push esi
push 0x496a80
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b736
add esi, 0xc
mov dword [ebp - 0x1c], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x44], edi
jmp 0x44b992
push edi
push esi
push 0x496a74
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b751
add esi, 0xe
mov dword [ebp - 0x10], edi
jmp 0x44b72b
push 6
push esi
push 0x496a6c
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b76a
add esi, 0xa
jmp 0x44b72b
push 9
push esi
push 0x496a60
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b783
add esi, 0x10
jmp 0x44b72b
push 5
push esi
push 0x496a58
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b7a4
add esi, edi
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x44], ebx
jmp 0x44b68e
push 6
push esi
push str._intpe
call fcn.0042fae7
add esp, 0xc
test al, al
jne 0x44b703
push 7
push esi
push 0x496a48
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b7e8
mov dword [ebp + 0x44], ebx
cmp byte [0x4a6b85], 3
mov dword [ebp + 0x5c], ebx
jne 0x44b992
jmp 0x44b5b0
push ebx
push esi
push 0x496a40
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b817
mov ax, word [esi + 8]
and ax, 0xffdf
cmp ax, 0x41
jb 0x44b80f
cmp ax, 0x5a
jbe 0x44b817
add esi, 6
jmp 0x44b706
push ebx
push esi
push str._ret
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b86c
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x58], esi
jne 0x44b841
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x44b865
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.004369c5
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x44b992
push ebx
push esi
push str._get
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b8ad
add esi, edi
cmp word [esi], 0x3a
mov dword [ebp + 0x20], 1
mov dword [ebp + 0x58], esi
jne 0x44b896
inc esi
inc esi
mov dword [ebp + 0x58], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.00433834
add esp, 4
test al, al
je 0x44b865
lea eax, [ebp + 0x20]
jmp 0x44b856
push 3
push esi
push 0x496a2c
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b8cc
add esi, ebx
mov byte [ebp + 0x37], 1
jmp 0x44b992
push 2
pop edi
push edi
push esi
push 0x496a28
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b905
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.004369c5
mov esi, dword [ebp + 0x58]
pop ecx
pop ecx
jmp 0x44b990
push edi
push esi
push 0x496a24
call fcn.0042fae7
add esp, 0xc
test al, al
je 0x44b992
lea eax, [ebp + 0x14]
push eax
lea eax, [ebp + 0x58]
add esi, ebx
push eax
mov dword [ebp + 0x58], esi
call fcn.004369c5
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44b943
call fcn.00402b47
test al, al
jne 0x44b943
add dword [ebp + 0x58], edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 0x58]
push eax
call fcn.004369c5
mov eax, dword [ebp + 0x58]
movzx eax, word [eax]
test ax, ax
pop ecx
pop ecx
je 0x44b969
call fcn.00402b47
test al, al
jne 0x44b969
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.004369c5
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 0x44b992
sub esi, edi
inc esi
inc esi
xor ecx, ecx
cmp word [esi], cx
jne 0x44b2c5
cmp dword [ebp + 4], ecx
je 0x44b9b4
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x70], eax
lea eax, [ebp + 0x70]
push eax
call fcn.00404167
pop ecx
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push eax
call fcn.0042ebab
mov eax, dword [ebp + 0x24]
pop ecx
jmp 0x44b9d1
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x24], eax
cmp word [eax], 0x26
je 0x44b9c9
lea ecx, [ebp + 4]
call fcn.00433c24
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x50], eax
xor ebx, ebx
jmp 0x44b9f4
cmp cx, 0x3d
je 0x44b9fc
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44b9e9
mov dword [ebp + 0x60], 0x496134
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x56], 0
je 0x44ba15
mov byte [ebp + 0x56], 1
jmp 0x44ba1d
inc eax
inc eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x50]
call fcn.0040c744
mov eax, dword [ebp + 0x50]
cmp word [eax], 0x7e
pop ecx
jne 0x44ba6d
inc eax
inc eax
mov edx, eax
mov dword [ebp - 0xc], edx
jmp 0x44ba43
cmp cx, 0x7e
je 0x44ba4e
inc eax
inc eax
mov dword [ebp + 0x50], eax
mov cx, word [eax]
cmp cx, bx
jne 0x44ba3b
cmp word [eax], 0x7e
je 0x44ba5e
mov edi, 0x80070057
jmp 0x44c599
mov word [eax], bx
add dword [ebp + 0x50], 2
cmp word [edx], bx
jne 0x44ba6d
mov dword [ebp - 0xc], ebx
lea ecx, [ebp - 8]
call fcn.00433c24
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.0042a99b
push 0x3b
push 0x2c
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.0042a99b
cmp dword [ebp + 0x4c], 8
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
je 0x44babe
cmp word [eax], bx
jne 0x44babe
mov eax, dword [ebp - 8]
cmp word [eax], bx
jne 0x44babe
xor edi, edi
jmp 0x44c591
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 0x44baff
dec dword [ebp + 0x28]
js 0x44baf6
mov eax, dword [ebp + 0x28]
inc eax
sub dword [ebp + 0x28], eax
dec eax
mov ecx, dword [ecx + 0x28]
jne 0x44baed
mov dword [ebp + 0x38], ecx
cmp byte [ebp + 0x4b], 0
je 0x44baff
mov dword [ebp + 0x1c], ecx
mov eax, dword [ebp + 0x20]
cmp eax, ebx
jle 0x44bb13
dec eax
js 0x44bb13
inc eax
dec eax
mov edi, dword [edi + 0x28]
jne 0x44bb0a
mov dword [ebp + 0x18], edi
cmp byte [ebp + 0x56], 0
je 0x44bb20
mov byte [ebp + 0x57], 0
mov dword [ebp + 0x4c], ebx
push 0x4a7658
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 0x44bb81
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.00433c6b
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 0x44c215
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.00433c24
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 0x44bbe2
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004369c5
test eax, eax
pop ecx
pop ecx
jle 0x44c0e9
movzx eax, byte [ebp + 0x30]
mov dword [ebp + 0x30], eax
jmp 0x44c0e9
cmp byte [ebp + 0x37], 0
je 0x44bc00
push dword [ebp + 0x60]
push dword [ebp + 0x18]
call fcn.00436fa1
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x44c0e9
test byte [ebp + 0x4c], 0x80
je 0x44bdc6
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 0x44bcef
push 2
mov byte [ebp + 0x4a], 1
pop ecx
cmp ax, 0x3b
je 0x44bc58
cmp ax, 0x2c
je 0x44bc58
cmp ax, 0x3a
je 0x44bc58
cmp ax, 0x40
je 0x44bc58
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44bc33
mov ax, word [esi]
cmp ax, bx
je 0x44bc68
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x40], esi
cmp ax, 0x40
mov dword [ebp + 0x2c], esi
jne 0x44bca5
mov ax, word [esi]
cmp ax, bx
je 0x44bca5
cmp ax, 0x3b
je 0x44bc98
cmp ax, 0x2c
je 0x44bc98
cmp ax, 0x3a
je 0x44bc98
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x40], esi
jne 0x44bc79
cmp word [esi], bx
je 0x44bca5
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.0040c4d0
cmp eax, ebx
je 0x44bd11
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.004369a1
cmp dword [ebp - 0x2c], ebx
pop ecx
pop ecx
jl 0x44bd11
mov eax, dword [ebp - 0x30]
jg 0x44bce5
cmp eax, ebx
jbe 0x44bd11
add dword [ebp + 0x60], eax
sub edi, eax
mov dword [ebp + 0x3c], edi
jmp 0x44bd11
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004369a1
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp + 0x40]
pop ecx
mov dword [ebp + 0x60], eax
cmp word [esi], bx
pop ecx
je 0x44bd11
inc esi
inc esi
mov dword [ebp + 0x40], esi
cmp dword [ebp + 0x60], ebx
jne 0x44bd24
mov dword [ebp + 0x60], 0x4906be
xor esi, esi
jmp 0x44c0e9
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x44bd34
inc esi
inc esi
mov dword [ebp + 0x40], esi
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.004369c5
cmp eax, 1
pop ecx
pop ecx
jge 0x44bd6b
cmp byte [ebp + 0x4a], 0
jne 0x44bd7c
test bl, bl
push dword [ebp + 0x60]
je 0x44bd5f
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
jmp 0x44bd7f
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x44bd7f
cmp byte [ebp + 0x4a], 0
je 0x44bd7c
mov esi, dword [ebp + 0x3c]
cmp esi, edi
jle 0x44bd7f
mov esi, edi
jmp 0x44bd7f
mov esi, dword [ebp + 0x3c]
xor ebx, ebx
cmp esi, ebx
jl 0x44c24b
and esi, 0x3fffffff
cmp dword [ebp + 0x4c], 0x81
jne 0x44c0e9
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x60]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x10]
call fcn.0040c4d0
cmp eax, ebx
je 0x44c255
cmp dword [eax + 0xc], ebx
jge 0x44c268
mov dword [eax + 4], ebx
jmp 0x44c268
xor edi, edi
fldz
xor ebx, ebx
fstp qword [ebp - 0x28]
cmp dword [ebp + 0x4c], edi
mov dword [ebp + 0x40], edi
je 0x44c00c
mov ecx, dword [ebp - 0x14]
push edi
push 0x2c
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0042a99b
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push edi
push dword [ebp + 0x10]
call fcn.0040c4d0
cmp eax, edi
je 0x44c24b
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 0x44be6d
push dword [ebp - 8]
push esi
push dword [ebp - 0x14]
call fcn.00435ee3
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp word [eax], bx
je 0x44c282
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 0x44c0e9
cmp dword [ebp + 0x4c], 4
jne 0x44bf2f
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c4d0
test eax, eax
je 0x44c0e9
cmp dword [eax + 0xc], 0
jge 0x44c0e9
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 0x44bec2
cmp edi, esi
jg 0x44c24b
mov eax, edi
sub eax, esi
test eax, eax
jle 0x44befc
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.00433c6b
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.0047b210
add esp, 0xc
mov dword [ebx + 0xc], edi
cmp dword [ebp + 0x4c], 4
jne 0x44bf15
mov eax, dword [ebp + 0x5c]
add eax, 3
and eax, 0xfffffffe
cmp eax, esi
mov dword [ebp + 0x5c], eax
jle 0x44bf15
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.0047b530
add esp, 0xc
jmp 0x44c282
cmp dword [ebp + 0x4c], 1
jne 0x44bf96
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.00433b3f
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 0x44bf6c
xor esi, esi
jmp 0x44bf72
cmp esi, edi
jle 0x44bf72
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.00433c6b
mov eax, dword [ebp + 0x58]
and word [eax + edi*2], 0
jmp 0x44bfda
cmp dword [ebp + 0x4c], 2
jne 0x44bfe6
mov esi, dword [ebp + 0x3c]
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00433c6b
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 0x44bfc5
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00433c6b
mov eax, dword [ebp + 0x58]
add esi, esi
mov word [esi + eax], di
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x44c0e9
cmp dword [ebp + 0x4c], 0x20
jne 0x44c282
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 0x44c0e9
cmp byte [ebp + 0x67], 0
je 0x44c038
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44c038
xor ecx, ecx
mov cl, byte [ebp - 0x38]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x10]
call fcn.0043de31
mov ecx, dword [ebp + 0x18]
push eax
call fcn.0044b158
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, edi
jl 0x44c05d
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.0043b011
dec ebx
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x60], eax
jne 0x44c043
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x44c07f
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.00442784
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 0x44c289
cmp dword [ebp + 0x5c], edi
jne 0x44c3b3
cmp byte [ebp + 0x57], 0
je 0x44c0d9
cmp esi, edi
jle 0x44c565
mov ebx, 0x4a7658
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.0040c4d0
cmp eax, edi
mov dword [ebp + 0x3c], eax
jne 0x44c45c
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44c0e9
cmp byte [ebp + 0x56], 0
je 0x44c0e9
cmp byte [ebp + 0x4b], 0
je 0x44c51d
xor eax, eax
cmp dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
je 0x44c121
cmp byte [ebp + 0x7c], al
jne 0x44c121
mov ecx, dword [ebp + 0x38]
test byte [ecx + 0xb], 0xf
jne 0x44c121
cmp byte [ebp + 0x73], al
jne 0x44c121
cmp dword [ebp + 0x30], eax
jge 0x44c121
cmp byte [ebp + 0x56], al
jne 0x44c121
push dword [ebp + 0x60]
push dword [ebp + 0x50]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x44c1ee
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c4d0
mov edi, eax
test edi, edi
mov ebx, edi
jne 0x44c189
cmp dword [ebp + 0x30], eax
jge 0x44c180
cmp byte [ebp + 0x73], al
mov eax, 0x496134
jne 0x44c14b
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.0040c433
cmp dword [ebp - 0xc], 0
mov edi, eax
je 0x44c17c
test edi, edi
je 0x44c180
push dword [ebp - 0xc]
lea ecx, [edi + 8]
call fcn.0043de8d
test edi, edi
jne 0x44c189
mov dword [ebp + 0x2c], 1
jmp 0x44c1ee
cmp dword [ebp + 0x30], 0
jl 0x44c1a8
mov eax, dword [edi + 0xc]
and eax, 0x3fffffff
push eax
push dword [ebp + 0x30]
push dword [edi + 4]
call fcn.0047b210
add esp, 0xc
jmp 0x44c1ee
cmp byte [ebp + 0x56], 0
jne 0x44c1ee
test ebx, ebx
je 0x44c1bf
cmp dword [ebx + 0xc], 0xfffff000
jge 0x44c1bf
and dword [ebx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x44c1df
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 0x44c1ee
test ebx, ebx
je 0x44c1ee
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402bd9
cmp dword [ebp], 0
jle 0x44c562
lea ecx, [ebp + 0x58]
call fcn.0042eb98
lea ecx, [ebp + 0x10]
call fcn.0042eb98
lea ecx, [ebp + 0x20]
call fcn.0042eb98
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.00431228
add esp, 0x1c
inc dword [ebp + 0x14]
inc dword [ebp - 4]
jmp 0x44bb81
mov edi, 0x80070057
jmp 0x44c565
mov ecx, dword [ebp + 0x38]
push ebx
push 0xffffffffffffffff
push 0x496134
push dword [ebp + 0x50]
call fcn.0040c433
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.0042eb98
xor edi, edi
jmp 0x44c565
lea ecx, [ebp + 0x7c]
mov dword [ebp + 0x24], eax
call fcn.00433c24
mov ecx, dword [ebp - 0x14]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0042a99b
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x44c2bd
lea ecx, [ebp + 0x7c]
call fcn.0042eb98
jmp 0x44c565
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp + 0x70], edi
call fcn.004369c5
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.0040c4d0
xor ecx, ecx
cmp eax, edi
mov dword [ebp + 0x70], 1
je 0x44c305
mov ecx, dword [eax + 0xc]
and ecx, 0x3fffffff
cmp ecx, ebx
jl 0x44c391
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.0047b530
add esp, 0xc
cmp dword [ebp - 0x18], edi
je 0x44c339
fld dword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x496a1c
jmp 0x44c350
cmp dword [ebp - 0x1c], edi
jne 0x44c343
cmp dword [ebp - 0x10], edi
je 0x44c35f
fld qword [ebp - 0x7c]
push ecx
push ecx
fstp qword [esp]
push 0x496a14
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x44c38e
cmp dword [ebp + 0x44], 0x64
lea eax, [ebp - 0x15c]
jne 0x44c37f
push dword [ebp - 0x7c]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x44c391
push dword [ebp + 8]
push dword [ebp - 0x78]
push dword [ebp - 0x7c]
push eax
call fcn.00470d8d
add esp, 0x10
mov ecx, dword [ebp + 0x38]
lea eax, [ebp - 0x15c]
push eax
push dword [ebp + 0x7c]
call fcn.004335ed
lea ecx, [ebp + 0x7c]
call fcn.0042eb98
mov edi, dword [ebp + 0x70]
jmp 0x44c565
cmp dword [ebp - 0x18], edi
mov dword [ebp + 0x7c], eax
je 0x44c3d0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0043679a
fld qword [ebp - 0x28]
fstp dword [ebp - 0x7c]
jmp 0x44c3fc
cmp dword [ebp - 0x1c], edi
jne 0x44c3da
cmp dword [ebp - 0x10], edi
je 0x44c3ef
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.0043679a
fld qword [ebp - 0x28]
fstp qword [ebp - 0x7c]
jmp 0x44c3fc
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c]
push eax
call fcn.004369a1
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
pop ecx
pop ecx
je 0x44c41c
add dword [ebp + 0x7c], 2
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x40], edi
call fcn.004369c5
pop ecx
pop ecx
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c4d0
mov ebx, eax
cmp ebx, edi
jne 0x44bea2
mov ecx, dword [ebp + 0x38]
push 0
push 0xffffffffffffffff
push 0x496134
push dword [ebp + 0x50]
call fcn.0040c433
mov ebx, eax
test ebx, ebx
jne 0x44bea2
xor edi, edi
inc edi
jmp 0x44c565
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 0x44c481
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.00433c6b
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 0x44c4d0
cmp byte [ebp + 0x7f], 0
je 0x44c4c9
push dword [ebp + 0x70]
push dword [ebp + 0x78]
push edi
call fcn.0047b530
add esp, 0xc
mov eax, dword [ebp + 0x70]
add edi, eax
jmp 0x44c4f7
cmp byte [ebp + 0x57], 2
jne 0x44c504
cmp byte [ebp + 0x7f], 0
push dword [ebp + 0x70]
lea eax, [edi + esi]
je 0x44c4ed
push dword [ebp + 0x78]
push eax
call fcn.0047b530
jmp 0x44c4f4
push edi
push eax
call fcn.0047b870
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.0047b530
add esp, 0xc
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x3c]
push 0x4a7658
mov dword [ecx + 0xc], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44c282
mov ecx, dword [ebp + 0x38]
push 0xffffffffffffffff
push dword [ebp + 0x1c]
push dword [ebp + 0x50]
call fcn.0040c4d0
mov esi, eax
test esi, esi
je 0x44c282
cmp dword [esi + 0xc], 0xfffff000
jge 0x44c54c
mov eax, dword [esi + 4]
and word [eax], 0
jmp 0x44c282
push 0x496134
lea ecx, [esi + 4]
call fcn.0043de31
and dword [esi + 0xc], 0
jmp 0x44c282
mov edi, dword [ebp + 0x2c]
lea ecx, [ebp + 0x58]
call fcn.0042eb98
lea ecx, [ebp + 0x10]
call fcn.0042eb98
lea ecx, [ebp + 0x20]
call fcn.0042eb98
lea ecx, [ebp + 0xc]
call fcn.0042eb98
mov eax, 0x4a7658
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 8]
call fcn.0042eb98
lea ecx, [ebp + 4]
call fcn.0042eb98
mov eax, edi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10