Function at 0x45f9f2
Capabilities:
Encode data using base64
Parse credit card information
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x26c
or dword [ebp - 0x7c], 0xffffffff
or dword [ebp - 0x58], 0xffffffff
xor eax, eax
inc eax
push ebx
xor ebx, ebx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], ecx
push esi
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x88], ebx
mov byte [ebp + 0x67], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp + 0xb], bl
mov dword [ebp + 0x2c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp + 0x30], str._I64d
mov dword [ebp + 0x14], eax
call fcn.0044684a
lea eax, [ebp + 0x14]
push eax
call fcn.0043fe57
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45fa8f
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45fa87
lea ecx, [ebp - 0xb4]
call fcn.0044658e
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45fab3
cmp cx, 0x3d
je 0x45fabb
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45faa8
mov dword [ebp + 0x60], 0x4c6a64
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x3f], 0
je 0x45fad4
mov byte [ebp + 0x3f], 1
jmp 0x45fadc
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.004111a0
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45fb32
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x88], ecx
jmp 0x45fb05
cmp ax, 0x7e
je 0x45fb10
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45fafd
cmp word [edx], 0x7e
je 0x45fb20
mov esi, 0x80070057
jmp 0x461dd9
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45fb32
mov dword [ebp - 0x88], ebx
mov esi, dword [ebp + 0x78]
fldz
cmp esi, ebx
fstp qword [ebp - 0x54]
push edi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x70], ebx
je 0x4605f8
mov dword [ebp - 4], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x4605f8
mov eax, edi
call fcn.004b1b03
test al, al
jne 0x4605f8
cmp di, 0x2e
je 0x4605ed
cmp di, 0x24
je 0x4605ed
cmp di, 0x25
je 0x4605ed
cmp di, 0x2a
jne 0x45fb99
or byte [ebp + 0x67], 4
jmp 0x4605ed
push 0x7e
pop ecx
cmp di, cx
jne 0x45fbee
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45fbb2
or byte [ebp + 0x67], 2
jmp 0x4605eb
cmp di, cx
jne 0x45fbee
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45fbc9
or byte [ebp + 0x67], 8
jmp 0x4605eb
cmp di, cx
jne 0x45fbee
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45fbe0
or byte [ebp + 0x67], 0xa
jmp 0x4605eb
cmp di, cx
jne 0x45fbee
or byte [ebp + 0x67], 1
jmp 0x4605ed
cmp di, 0x3c
jne 0x45fbfd
mov byte [ebp + 0x4b], 1
jmp 0x4605ed
cmp di, 0x3e
jne 0x45fc0c
mov byte [ebp + 0x4b], 2
jmp 0x4605ed
push 4
push esi
push str._std
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fc32
add esi, 6
mov dword [ebp - 0xb8], 0x80
jmp 0x4605ed
push 4
push esi
push 0x4d024c
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fc58
add esi, 6
mov dword [ebp - 0xb8], 0x40
jmp 0x4605ed
push 4
push esi
push 0x4d0244
call fcn.00441277
add esp, 0xc
test al, al
jne 0x46001d
push 4
push esi
push str._def
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fc90
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x4605ed
push 4
push esi
push str._tom
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fcb3
add esi, 6
mov dword [ebp + 0x2c], 1
jmp 0x4605ed
push 4
push esi
push str._tow
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fcd6
add esi, 6
mov dword [ebp + 0x2c], 2
jmp 0x4605ed
push 5
push esi
push str._copy
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fcf9
add esi, 8
mov dword [ebp + 0x2c], 4
jmp 0x4605ed
push 4
push esi
push str._cmp
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fd1c
add esi, 8
mov dword [ebp + 0x2c], 0x100
jmp 0x4605ed
push 5
push esi
push str._addr
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fd3d
push 8
pop eax
add esi, eax
mov dword [ebp + 0x2c], eax
jmp 0x4605ed
push 0xb
push esi
push str._mkfixdummy
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fd60
add esi, 0x14
mov dword [ebp + 0x2c], 0x83
jmp 0x4605ed
push 8
push esi
push str._mkdummy
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fd83
add esi, 0xe
mov dword [ebp + 0x2c], 0x81
jmp 0x4605ed
push 5
push esi
push str._make
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fda6
add esi, 8
mov dword [ebp + 0x2c], 0x80
jmp 0x4605ed
push 5
push esi
push str._swap
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fdc9
add esi, 8
mov dword [ebp + 0x2c], 0x20
jmp 0x4605ed
push 5
push esi
push str._zero
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fde8
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x4605ed
push 4
push esi
push str._ret
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fe39
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45fe14
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00414dee
test al, al
je 0x45fe32
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00453e89
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x4605ed
push 4
push esi
push str._get
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fe76
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x38], 1
mov dword [ebp + 0x70], esi
jne 0x45fe65
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00414dee
test al, al
je 0x45fe32
lea eax, [ebp + 0x38]
jmp 0x45fe23
push 3
push esi
push 0x4d01d0
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fe96
add esi, 4
mov byte [ebp + 0xb], 1
jmp 0x4605ed
push 2
push esi
push 0x4d01cc
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fec5
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0xa0], 1
lea eax, [ebp - 0xa0]
jmp 0x45fe23
push 2
push esi
push 0x4d01c8
call fcn.00441277
add esp, 0xc
test al, al
je 0x45ff4c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.00405c24
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00405c24
mov esi, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x68], esi
call fcn.00453e89
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00453e89
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45ff31
mov dword [ebp - 0x84], 1
mov eax, dword [ebp - 0x20]
sub eax, esi
mov esi, dword [ebp + 0x70]
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x7c], eax
je 0x4605ed
jmp 0x45fe32
cmp di, 0x2d
jne 0x4601e4
inc esi
push 1
inc esi
push esi
push 0x4cb448
call fcn.00441277
add esp, 0xc
test al, al
je 0x45fffd
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov edx, esi
je 0x45ffaa
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x45ffa2
cmp cx, 0x3a
je 0x45ffa2
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45ff87
cmp word [esi], bx
je 0x45ffaa
mov word [esi], bx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xd8]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x9c]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xd8], ebx
push eax
call fcn.004543bc
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x1c], eax
jl 0x46064f
mov esi, dword [ebp - 0xd8]
cmp word [esi], di
mov dword [ebp - 4], ebx
jne 0x45ffef
mov esi, 0x4d01c0
mov eax, dword [ebp - 0x70]
cmp eax, ebx
jle 0x45fffd
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.00441277
add esp, 0xc
test al, al
je 0x460025
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x4605ed
push 5
push esi
push str.wchar
call fcn.00441277
add esp, 0xc
test al, al
je 0x46004b
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x4605ed
push 5
push esi
push str.short
call fcn.00441277
add esp, 0xc
test al, al
jne 0x460039
push 3
push esi
push 0x4cf5b8
call fcn.00441277
add esp, 0xc
test al, al
je 0x460080
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x4605ed
push 6
push esi
push str.intptr
call fcn.00441277
add esp, 0xc
test al, al
je 0x4600a2
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x4605ed
push 5
push esi
push str.intpe
call fcn.00441277
add esp, 0xc
test al, al
je 0x4600c4
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x4605ed
push 5
push esi
push str.float
call fcn.00441277
add esp, 0xc
test al, al
je 0x4600e6
mov dword [ebp - 0x8c], edi
mov dword [ebp + 0x50], edi
jmp 0x460040
push 6
push esi
push 0x4cf5a8
call fcn.00441277
add esp, 0xc
test al, al
je 0x460105
push 8
pop eax
mov dword [ebp - 0x80], eax
mov dword [ebp + 0x50], eax
jmp 0x460097
push 7
push esi
push str.ldouble
call fcn.00441277
add esp, 0xc
test al, al
je 0x460130
push 8
pop eax
mov dword [ebp - 0x90], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x4605ed
push 5
push esi
push str.int64
call fcn.00441277
add esp, 0xc
test al, al
push 8
jne 0x4601d9
push esi
push str.longlong
call fcn.00441277
add esp, 0xc
test al, al
je 0x46016b
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x4600bc
push edi
push esi
push str.long
call fcn.00441277
add esp, 0xc
test al, al
je 0x460186
mov dword [ebp + 0x50], edi
jmp 0x46001a
push 6
push esi
push str.intsys
call fcn.00441277
add esp, 0xc
test al, al
jne 0x460551
push 3
push esi
push 0x4cf264
call fcn.00441277
add esp, 0xc
test al, al
je 0x4605ed
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x4601d7
cmp ax, 0x41
jb 0x4601d7
cmp ax, 0x5a
jbe 0x4605ed
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x4600bc
cmp di, 0x3f
jne 0x4605ed
inc esi
push 1
inc esi
push esi
push 0x4cb448
call fcn.00441277
add esp, 0xc
test al, al
je 0x460297
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x20], edi
mov edx, esi
je 0x460244
mov eax, ecx
call fcn.004b1b03
test al, al
jne 0x46023c
cmp cx, 0x3a
je 0x460239
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x46021c
jmp 0x46023c
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x460244
mov word [esi], bx
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xcc]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x9c]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xcc], ebx
push eax
call fcn.004543bc
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x1c], eax
jl 0x46064f
mov esi, dword [ebp - 0xcc]
cmp word [esi], di
mov dword [ebp - 4], ebx
jne 0x460289
mov esi, 0x4d01c0
mov eax, dword [ebp - 0x70]
cmp eax, ebx
jle 0x460297
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.00441277
add esp, 0xc
test al, al
je 0x4602f3
xor edx, edx
inc edx
add esi, 6
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x30], str.0x_I64X
je 0x4602cb
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x4602dd
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x4605de
mov dword [ebp + 0x30], str.0x_02I64X
jmp 0x4605dc
push 5
push esi
push str.wchar
call fcn.00441277
add esp, 0xc
test al, al
je 0x460312
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x20], edx
jmp 0x460331
push 5
push esi
push str.short
call fcn.00441277
add esp, 0xc
test al, al
je 0x46036e
push 2
pop eax
push eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x20], eax
pop edx
add esi, 8
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x30], str.0x_I64X
je 0x460346
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x460358
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x4605de
mov dword [ebp + 0x30], str.0x_04I64X
jmp 0x4605dc
push 3
push esi
push 0x4cf5b8
call fcn.00441277
add esp, 0xc
test al, al
je 0x4603a9
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x20], 0x64
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x30], str.0x_I64X
je 0x4603a0
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x4603ee
push 6
push esi
push str.intptr
call fcn.00441277
add esp, 0xc
test al, al
je 0x4603f9
add esi, 0xa
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x30], str.0x_I64X
je 0x4603d8
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x4603ea
mov dword [ebp - 0xa8], edi
cmp cx, 0x30
jne 0x4605de
jmp 0x4605dc
push 5
push esi
push str.float
call fcn.00441277
add esp, 0xc
test al, al
je 0x460424
add esi, 8
mov dword [ebp - 0x8c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edi
jmp 0x4605ed
push 6
push esi
push 0x4cf5a8
call fcn.00441277
add esp, 0xc
test al, al
je 0x46044f
push 8
pop eax
add esi, 0xa
mov dword [ebp - 0x80], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], eax
jmp 0x4605ed
push 7
push esi
push str.ldouble
call fcn.00441277
add esp, 0xc
test al, al
je 0x460471
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x90], eax
jmp 0x460441
push 5
push esi
push str.int64
call fcn.00441277
add esp, 0xc
test al, al
push 8
je 0x46048c
pop edx
add esi, edx
jmp 0x4604a4
push esi
push str.longlong
call fcn.00441277
add esp, 0xc
test al, al
je 0x4604dd
push 8
add esi, 0xe
pop edx
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edx
je 0x4604b5
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x4604c7
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x4605de
mov dword [ebp + 0x30], str.0x_016I64X
jmp 0x4605dc
push edi
push esi
push str.long
call fcn.00441277
add esp, 0xc
test al, al
je 0x460516
mov eax, dword [ebp + 0x5c]
add esi, 6
cmp eax, ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x30], str.0x_I64X
je 0x4605bd
lea esi, [eax - 2]
jmp 0x4605bd
push 5
push esi
push str.intpe
call fcn.00441277
add esp, 0xc
test al, al
je 0x46052f
add esi, 8
jmp 0x4605ac
push 6
push esi
push str.intsys
call fcn.00441277
add esp, 0xc
test al, al
je 0x460593
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x20], edi
je 0x460551
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4e2c3d], 3
mov dword [ebp + 0x54], ebx
sete al
lea eax, [eax*4 + 4]
mov dword [ebp + 0x50], eax
lea eax, [esi + 2]
cmp word [eax], 0x30
jne 0x4605ed
cmp byte [0x4e2c3d], 3
mov esi, eax
je 0x46058a
mov dword [ebp + 0x30], str.0x_08I64X
jmp 0x4605ed
mov dword [ebp + 0x30], str.0x_016I64X
jmp 0x4605ed
push 3
push esi
push 0x4cf264
call fcn.00441277
add esp, 0xc
test al, al
je 0x4605ed
push 4
pop edi
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edi
je 0x4605bd
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x4605cf
mov dword [ebp - 0xa8], edi
cmp cx, 0x30
jne 0x4605de
mov dword [ebp + 0x30], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x4605ed
add dword [ebp + 0x30], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 4], ebx
jne 0x45fb4f
lea ecx, [ebp - 0x64]
call fcn.0044658e
mov esi, dword [ebp + 0xc]
push 0x3b
push 0x2c
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.0043afff
push 0x3b
push 0x2c
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.0043afff
cmp dword [ebp + 0x2c], 8
mov eax, dword [ebp - 0xb4]
mov dword [ebp + 0x4c], eax
je 0x460659
cmp word [eax], bx
jne 0x460659
mov eax, dword [ebp - 0x64]
cmp word [eax], bx
jne 0x460659
xor esi, esi
jmp 0x461dd0
mov esi, 0x80070057
jmp 0x461dd8
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2a]
mov al, byte [ebp + 0x2a]
neg al
mov dword [ebp - 4], edx
sbb eax, eax
and eax, esi
cmp dword [ebp - 0x24], ebx
mov dword [ebp - 0x44], eax
mov eax, esi
mov dword [ebp + 0x18], eax
jle 0x46069a
dec dword [ebp - 0x24]
js 0x460691
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x460688
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2a], 0
je 0x46069a
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x38]
cmp eax, ebx
jle 0x4606ae
dec eax
js 0x4606ae
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x4606a5
mov dword [ebp - 4], edx
cmp byte [ebp + 0x3f], 0
je 0x4606bb
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x2c], ebx
push 0x4e3d84
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp - 0x7c], ebx
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0x5c], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xd4], ebx
jle 0x460735
push dword [ebp + 0x4c]
call edi
push dword [ebp + 0x60]
mov esi, eax
mov ebx, 0x641
add esi, ebx
call edi
add eax, ebx
add eax, esi
push eax
lea ecx, [ebp + 0x5c]
call fcn.004465d3
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xd4], esi
jmp 0x46143d
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
lea edi, [ebp - 0x114]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0x11c]
lea ecx, [ebp + 0x44]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x40], esi
call fcn.0044658e
lea eax, [ebp + 0x58]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0xb0]
xor ecx, ecx
cmp dword [ebp - 0x58], ecx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x58]
cdq
mov dword [ebp + 0x58], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x40], 0xff000000
jl 0x46084f
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045f99c
movzx eax, byte [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x60]
xor edi, edi
add esp, 0xc
cmp word [eax], di
mov dword [ebp + 0x38], edi
je 0x4611d3
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045f99c
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x460832
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x38], edi
call fcn.0045f99c
add esp, 0xc
test eax, eax
jle 0x460832
cmp dword [ebp + 0x38], edi
jne 0x46083b
cmp dword [ebp - 0x40], edi
je 0x4611d3
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004b6720
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x38], edi
je 0x4611d3
cmp dword [ebp - 0x40], edi
jne 0x4611d3
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x40], eax
jmp 0x4611d3
cmp byte [ebp + 0xb], 0
je 0x46086d
push dword [ebp + 0x60]
push dword [ebp - 4]
call fcn.0044a070
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x4610bf
test byte [ebp + 0x2c], 0x80
je 0x460bb1
mov esi, dword [ebp + 0x60]
mov ax, word [esi]
xor ebx, ebx
or edi, 0xffffffff
cmp ax, 0x26
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0x34], esi
mov dword [ebp - 0xc4], edi
mov byte [ebp + 0x2b], bl
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x38], ebx
jne 0x46095e
push 0x26
pop eax
push 2
mov byte [ebp + 0x2b], 1
pop ecx
cmp ax, 0x3b
je 0x4608df
cmp ax, 0x2c
je 0x4608df
cmp ax, 0x3a
je 0x4608df
cmp ax, 0x40
je 0x4608df
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x4608ba
mov ax, word [esi]
cmp ax, bx
je 0x4608ef
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x34], esi
cmp ax, 0x40
jne 0x46092c
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x38], esi
je 0x46092c
cmp ax, 0x3b
je 0x46091f
cmp ax, 0x2c
je 0x46091f
cmp ax, 0x3a
je 0x46091f
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x460900
cmp word [esi], bx
je 0x46092c
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x34], esi
mov ecx, dword [ebp - 4]
push ebx
push edi
push ebx
push dword [ebp + 0x60]
call fcn.00411019
cmp eax, ebx
je 0x46147e
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jmp 0x460a6c
mov dword [ebp - 0x74], esi
jmp 0x460983
cmp ax, 0x3b
je 0x460988
cmp ax, 0x2c
je 0x460988
cmp ax, 0x3a
je 0x460988
cmp ax, 0x40
je 0x460988
inc esi
inc esi
mov ax, word [esi]
mov dword [ebp + 0x34], esi
cmp ax, bx
jne 0x460963
mov ax, word [esi]
cmp ax, bx
je 0x460998
mov word [esi], bx
inc esi
inc esi
mov dword [ebp + 0x34], esi
cmp ax, 0x40
jne 0x4609d5
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x38], esi
je 0x4609d5
cmp ax, 0x3b
je 0x4609c8
cmp ax, 0x2c
je 0x4609c8
cmp ax, 0x3a
je 0x4609c8
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x4609a9
cmp word [esi], bx
je 0x4609d5
mov word [esi], bx
inc esi
inc esi
mov dword [ebp + 0x34], esi
push 5
push dword [ebp - 0x74]
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x460a4c
mov eax, dword [ebp - 0x74]
add eax, 0xa
cmp word [eax], bx
je 0x46147e
mov ecx, 0x4c6a64
push ecx
push ecx
push ecx
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
push eax
call fcn.00442ec6
cmp eax, ebx
je 0x46147e
cmp dword [eax + 4], 0x14
jne 0x46147e
cmp dword [eax + 0x48], 0xfffffffe
jne 0x46147e
cmp dword [eax + 0x50], ebx
jle 0x46147e
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x50]
dec eax
dec eax
cdq
mov edi, eax
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edx
jmp 0x460a6c
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0045f99c
mov eax, dword [ebp - 0xc0]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x38], ebx
je 0x460ab9
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045f99c
add esp, 0xc
test eax, eax
jle 0x460ab9
mov eax, dword [ebp - 0xbc]
cmp eax, ebx
jl 0x460ab9
mov ecx, dword [ebp - 0xc0]
jg 0x460aa2
cmp ecx, ebx
jbe 0x460ab9
add dword [ebp + 0x60], ecx
sub edi, ecx
sbb dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
cmp word [esi], 0x7e
sete byte [ebp - 5]
cmp byte [ebp - 5], 0
je 0x460acc
inc esi
inc esi
mov dword [ebp + 0x34], esi
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x460ae0
inc esi
inc esi
and dword [ebp + 0x1c], 0
mov dword [ebp + 0x34], esi
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.0045f99c
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x460b07
mov dword [ebp + 0x60], 0x4c78c2
jmp 0x4610bf
cmp eax, 1
jge 0x460b3b
cmp byte [ebp + 0x2b], 0
jne 0x460b5c
test bl, bl
je 0x460b25
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x460b5f
cmp byte [ebp - 5], 0
jg 0x460b5c
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x460b5f
cmp byte [ebp + 0x2b], 0
je 0x460b5c
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0x14], ecx
jl 0x460b5c
jg 0x460b55
mov eax, dword [ebp - 0x18]
cmp eax, edi
jbe 0x460b5f
mov eax, edi
mov dword [ebp - 0x14], ecx
jmp 0x460b5f
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x4614b8
jg 0x460b72
cmp eax, esi
jb 0x4614b8
mov esi, eax
mov eax, dword [ebp + 0x2c]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x4611d3
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.00411019
test eax, eax
je 0x4614e1
test byte [eax + 0x17], 0xc0
je 0x4614f5
and dword [eax + 4], ebx
jmp 0x4614f5
xor edi, edi
cmp dword [ebp + 0x2c], edi
je 0x4610c6
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x74], edi
xor ecx, ecx
jmp 0x460be0
cmp cx, 0x2c
je 0x460bed
cmp cx, 0x3b
je 0x460bed
cmp cx, 0x3a
je 0x460bed
cmp cx, 0x7c
je 0x460bed
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x1c], eax
jne 0x460bc6
jmp 0x460bfc
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp - 0x74], cx
mov dword [ebp + 0x1c], eax
mov ecx, dword [ebp + 0xc]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043afff
mov ecx, dword [ebp - 4]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.00411019
cmp eax, edi
je 0x4619e5
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x2c]
add eax, 0x10
mov esi, dword [eax]
xor ebx, ebx
cmp ecx, 8
jne 0x460c8b
push dword [ebp - 0x64]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.00448c7f
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x46152a
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x164]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x164]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x4610bf
cmp ecx, 4
jne 0x460d44
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
cmp word [ebp - 0x74], 0
mov edi, eax
jne 0x46157a
test edi, edi
je 0x4611d3
test byte [edi + 0x17], 0xc0
je 0x4611d3
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
cmp dword [ebp - 0x94], 0
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x78], ecx
jle 0x460ce7
and dword [ebp + 0x54], 0
push 4
pop ecx
mov eax, dword [ebp - 0x1c]
cdq
mov esi, eax
add esi, ecx
mov ecx, dword [edi + 0x10]
mov ebx, edx
adc ebx, dword [ebp + 0x54]
xor edx, edx
test byte [edi + 0x17], 0xc0
mov dword [ebp - 0x4c], ecx
je 0x461bb9
cmp ebx, edx
jl 0x461bb9
jg 0x460d18
cmp esi, ecx
jbe 0x461bb9
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
jmp 0x4614a5
cmp ecx, 0x100
jne 0x460fa2
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
or dword [ebp + 4], 0xffffffff
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov edi, dword [eax + 0x10]
xor eax, eax
mov dword [ebp - 0x120], eax
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x74], eax
mov dword [ebp + 0x34], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x1c]
push eax
mov dword [ebp], 0xfffffff8
call fcn.0047f1ca
lea eax, [ebp]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0047f1ca
and dword [ebp + 0x38], 0
add esp, 0x10
cmp dword [ebp + 4], 0
jg 0x460dd0
jl 0x460dc3
cmp dword [ebp], 0
jae 0x460dd0
mov dword [ebp + 0x38], 1
mov dword [ebp], esi
mov dword [ebp + 4], ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0047f1ca
mov eax, dword [ebp + 0x1c]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x460df6
cmp cx, 0x69
jne 0x460e08
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x74], ecx
jne 0x460e0f
jmp 0x460e0b
mov ecx, dword [ebp - 0x74]
and dword [ebp + 0x38], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x460d18
jg 0x460e25
cmp dword [ebp - 0x34], eax
jb 0x460d18
cmp dword [ebp - 0x28], eax
jl 0x460d18
jg 0x460e39
cmp dword [ebp - 0x2c], eax
jb 0x460d18
cmp dword [ebp + 4], eax
jl 0x460d18
jg 0x460e4d
cmp dword [ebp], eax
jbe 0x460d18
cmp dword [ebp - 0x28], ebx
jg 0x460d18
jl 0x460e61
cmp dword [ebp - 0x2c], esi
ja 0x460d18
mov eax, dword [ebp - 0x120]
cmp dword [ebp - 0x30], eax
jg 0x460d18
jl 0x460e7b
cmp dword [ebp - 0x34], edi
ja 0x460d18
cmp dword [ebp + 0x38], 0
jne 0x460ec7
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x460e9b
jg 0x460e97
cmp edi, esi
jbe 0x460e9b
mov edi, esi
mov eax, ebx
cmp dword [ebp + 4], eax
jl 0x460ead
jg 0x460ea7
cmp dword [ebp], edi
jbe 0x460ead
mov dword [ebp], edi
mov dword [ebp + 4], eax
test cl, 0x20
je 0x460ec7
push 0
push 2
push dword [ebp + 4]
push dword [ebp]
call fcn.004b4580
mov dword [ebp], eax
mov dword [ebp + 4], edx
cmp dword [ebp + 4], 0
jl 0x460f93
jg 0x460edd
cmp dword [ebp], 0
jbe 0x460f93
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x34]
add ecx, edx
mov edx, dword [ebp + 0x10]
cmp dx, 0x73
jne 0x460f1a
cmp dword [ebp + 0x38], 0
je 0x460f0d
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x460f90
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x460f90
cmp dx, 0x53
jne 0x460f3d
cmp dword [ebp + 0x38], 0
je 0x460f30
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x460f90
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x460f90
cmp dx, 0x69
jne 0x460f60
cmp dword [ebp + 0x38], 0
je 0x460f53
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x460f90
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x460f90
cmp dx, 0x49
jne 0x460f83
cmp dword [ebp + 0x38], 0
je 0x460f76
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x460f90
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x460f90
push dword [ebp]
push ecx
push eax
call fcn.0043ff15
add esp, 0xc
mov dword [ebp + 0x34], eax
movsx eax, word [ebp + 0x34]
push eax
push 0x4c72f0
jmp 0x460c62
cmp ecx, 1
jne 0x46104a
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004b4630
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe8], edx
call fcn.0044645c
push ebx
push ebx
push edi
push dword [ebp + 0x58]
push esi
push dword [ebp + 0x60]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cdq
cmp edx, ebx
mov esi, eax
mov dword [ebp - 0x48], edx
jg 0x460ff6
jl 0x460fef
cmp esi, ebx
jae 0x460ff6
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x46100b
mov eax, dword [ebp - 0xe8]
cmp edx, eax
jl 0x46100b
jg 0x461006
cmp esi, edi
jbe 0x46100b
mov esi, edi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp - 0x48]
mov byte [eax + esi], 0
push ebx
mov eax, esi
add eax, 1
push 2
adc ecx, ebx
push ecx
push eax
call fcn.004b4580
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004465d3
mov eax, dword [ebp + 0x58]
mov word [eax + edi*2], bx
mov ebx, dword [ebp - 0x48]
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], eax
jmp 0x4611d3
cmp ecx, 2
jne 0x4610a2
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xac], ebx
call fcn.004465d3
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4e2be4]
mov esi, eax
cmp esi, edi
jge 0x46107b
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004465d3
mov ecx, dword [ebp + 0x58]
lea eax, [esi + esi]
mov word [eax + ecx], di
cdq
mov byte [ebp + 0x73], 1
mov dword [ebp + 0x60], ecx
mov esi, eax
mov ebx, edx
jmp 0x4611d3
cmp ecx, 0x20
jne 0x461d7c
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xd0], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x4611d3
cmp byte [ebp + 0x67], 0
je 0x4610f5
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x4610f5
xor ecx, ecx
mov cl, byte [ebp - 0xb8]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0045066c
mov ecx, dword [ebp - 4]
push eax
call fcn.0045f8a2
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xa0]
dec eax
cmp eax, edi
jl 0x46111f
lea edi, [eax + 1]
mov ecx, dword [ebp - 4]
push 0
push 0
lea eax, [ebp + 0x40]
push eax
push dword [ebp + 0x60]
call fcn.00457f62
dec edi
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x60], eax
jne 0x461103
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x461146
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045ef51
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
add esp, 0x10
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x58]
sete byte [ebp + 0x73]
xor eax, eax
cmp eax, edi
jg 0x461691
jl 0x461165
cmp dword [ebp + 0x20], edi
ja 0x461691
cmp dword [ebp + 0x54], edi
jg 0x4619d7
jl 0x461179
cmp dword [ebp + 0x50], edi
ja 0x4619d7
cmp byte [ebp + 0x4b], 0
je 0x4611c3
cmp ebx, edi
jl 0x4616e9
jg 0x461191
cmp esi, edi
jbe 0x4616e9
mov edi, 0x4e3d84
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
test eax, eax
mov dword [ebp + 0x10], eax
jne 0x461c63
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4611d3
cmp byte [ebp + 0x3f], 0
je 0x4611d3
cmp byte [ebp + 0x2a], 0
je 0x461d42
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 0x10], eax
je 0x46120b
cmp byte [ebp + 0x7c], al
jne 0x46120b
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x46120b
cmp byte [ebp + 0x73], al
jne 0x46120b
cmp dword [ebp - 0x58], eax
jge 0x46120b
cmp byte [ebp + 0x3f], al
jne 0x46120b
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x461415
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
mov edi, eax
test edi, edi
mov dword [ebp - 0xac], edi
jne 0x461289
cmp dword [ebp - 0x58], eax
jge 0x46127d
cmp byte [ebp + 0x73], al
je 0x46123a
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x46123f
mov ecx, esi
mov dword [ebp - 0x74], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4c6a64
jne 0x46124d
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.0041556a
cmp dword [ebp - 0x88], 0
mov edi, eax
je 0x461279
test edi, edi
je 0x46127d
push dword [ebp - 0x88]
lea ecx, [edi + 8]
call fcn.004506c8
test edi, edi
jne 0x461289
mov dword [ebp + 0x10], 1
jmp 0x461415
cmp dword [ebp - 0x58], 0
jl 0x46139b
mov cl, byte [ebp - 0x40]
mov esi, dword [edi + 0x10]
xor edx, edx
inc edx
shl edx, cl
mov eax, esi
sub eax, dword [ebp - 0x60]
xor ecx, ecx
cmp dword [ebp - 0x38], ecx
ja 0x4612b9
jb 0x4612b1
cmp dword [ebp - 0x3c], eax
ja 0x4612b9
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x4612bf
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x60]
xor eax, eax
mov ecx, edi
sub ecx, edx
add ecx, dword [ebp - 0x3c]
cmp dword [ebp - 0x5c], eax
ja 0x461415
jb 0x4612e2
cmp dword [ebp - 0x60], esi
jae 0x461415
cmp dword [ebp - 0x38], 0
ja 0x4612f2
cmp dword [ebp - 0x3c], 0
jbe 0x461415
cmp edx, 2
jb 0x46138a
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x461415
ja 0x461311
cmp dword [ebp - 0x3c], edx
jb 0x461415
cmp edx, 2
jne 0x46133f
cmp edi, ecx
ja 0x461415
mov eax, dword [ebp - 0x10]
mov dx, ax
sub ecx, edi
shr ecx, 1
inc ecx
shl edx, 0x10
mov dx, ax
shr ecx, 1
mov eax, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
jmp 0x461415
cmp edx, 4
jne 0x46135c
cmp edi, ecx
ja 0x461415
mov eax, dword [ebp - 0x10]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x461415
cmp edx, 8
jne 0x46138a
cmp edi, ecx
ja 0x461415
mov eax, dword [ebp - 0x10]
sub ecx, edi
mov dword [edi], eax
mov eax, dword [ebp - 0xc]
shr ecx, 2
mov dword [edi + 4], eax
and ecx, 0x3ffffffe
mov esi, edi
add edi, edx
rep movsd dword es:[edi], dword [esi]
jmp 0x461415
push dword [ebp - 0x3c]
push dword [ebp - 0x10]
push edi
call fcn.004b4520
add esp, 0xc
jmp 0x461415
cmp byte [ebp + 0x3f], 0
jne 0x461415
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x4613da
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x4613d2
cmp byte [ebp + 0x73], 0
je 0x4613c2
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
push ebx
push esi
push dword [ebp + 0x60]
push edi
call fcn.00440630
add esp, 0x10
jmp 0x461415
test al, al
je 0x4613da
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x461406
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xd0]
mov dword [eax], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
jmp 0x461415
test ecx, ecx
je 0x461415
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402f11
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
cmp dword [ebp - 0x7c], 0
jle 0x461db5
mov esi, dword [ebp - 0xd4]
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0xe0]
push dword [ebp - 0xdc]
dec dword [ebp - 0x7c]
push eax
mov dword [ebp + 0x4c], eax
call fcn.004430c1
push dword [ebp - 0x68]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xe4]
push esi
call fcn.004430c1
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x6c], eax
add esp, 0x18
add dword [ebp - 0x68], eax
jmp 0x460735
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
cmp eax, ebx
je 0x4614ae
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x461dd0
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
cmp eax, esi
jmp 0x4614a5
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4c6a64
push dword [ebp + 0x4c]
call fcn.0041556a
xor ecx, ecx
cmp dword [ebp + 0x2c], 0x83
mov edx, 0xc0000000
je 0x46150a
mov edx, 0x80000000
or esi, ecx
or ebx, edx
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x7c], ecx
lea ecx, [ebp + 0x7c]
mov dword [eax + 4], edi
call fcn.0043fe25
jmp 0x461d7c
mov eax, dword [ebp - 0x64]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
je 0x461dd0
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x461dd0
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp + 0x24], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x1c]
push eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x20], ecx
call fcn.0047f1ca
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0047f1ca
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.0047f1ca
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x460d18
jg 0x4615d7
cmp dword [ebp - 0x34], 0
jb 0x460d18
cmp dword [ebp - 0x28], 0
jl 0x460d18
jg 0x4615ed
cmp dword [ebp - 0x2c], 0
jbe 0x460d18
cmp dword [ebp - 0x30], ebx
jg 0x460d18
jl 0x461601
cmp dword [ebp - 0x34], esi
ja 0x460d18
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x24]
jg 0x460d18
mov ecx, dword [ebp - 0x4c]
jl 0x46161b
cmp ecx, dword [ebp + 0x20]
ja 0x460d18
test eax, eax
jg 0x461629
jl 0x461625
test ecx, ecx
jae 0x461629
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x34]
sbb ebx, dword [ebp - 0x30]
sub dword [ebp + 0x20], ecx
sbb dword [ebp + 0x24], eax
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x461648
jg 0x461643
cmp dword [ebp - 0x2c], esi
jbe 0x461648
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x24]
jl 0x46165f
jg 0x461657
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x20]
jbe 0x461662
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
jmp 0x461662
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x461d7c
jg 0x461674
test edx, edx
jbe 0x461d7c
mov eax, dword [ebp + 0x60]
push edx
mov edx, dword [ebp - 0x34]
add edx, eax
mov eax, dword [edi + 4]
push edx
add eax, ecx
push eax
call fcn.004147ef
add esp, 0xc
jmp 0x461d7c
cmp dword [ebp + 0x20], 0x2a
jne 0x46169f
cmp eax, edi
je 0x4619e5
cmp dword [ebp - 0x94], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xac], eax
jle 0x4616ba
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.0044658e
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.0043afff
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x461715
lea ecx, [ebp + 0x7c]
call fcn.0043fe25
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
cmp eax, edi
jmp 0x461da3
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x461727
add dword [ebp + 0x14], 2
mov bl, byte [ebp + 0x50]
push dword [ebp + 0xc]
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
call fcn.00453cc7
add esp, 0xc
test bl, bl
je 0x46175b
push dword [ebp - 0xc]
movsx eax, bl
push dword [ebp - 0x10]
cdq
push edx
push eax
call fcn.004b4630
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ebx, eax
add ebx, dword [ebp + 0x50]
mov eax, dword [ebp - 0x70]
mov esi, edx
adc esi, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov word [ebp - 0x204], di
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
jle 0x46178c
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.00414dee
test al, al
je 0x4617c4
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.004429d6
mov edi, dword [ebp + 0x78]
mov eax, 0x7fffffff
sub eax, edi
cdq
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
jmp 0x4617e5
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00411019
test eax, eax
je 0x4617e5
mov ecx, dword [eax + 0x10]
and dword [ebp - 0xc], 0
mov edi, dword [eax + 4]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0xc], esi
mov dword [ebp + 0x78], 1
jl 0x461985
jg 0x461800
cmp dword [ebp - 0x10], ebx
jb 0x461985
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x1c]
xor esi, esi
inc esi
cmp dword [ebp - 0x94], esi
jl 0x46183a
push 4
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.0044680d
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x94]
jle 0x461812
push dword [ebp - 0xac]
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.00414839
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x8c], edx
je 0x46187d
fld dword [ebp - 0x11c]
push 0x4cf588
push ecx
lea eax, [ebp - 0x204]
fstp dword [esp]
push eax
call fcn.004a12d1
add esp, 0xc
jmp 0x461985
cmp dword [ebp - 0x80], edx
je 0x4618a3
fld qword [ebp - 0x11c]
push 0x4cf590
push ecx
push ecx
lea eax, [ebp - 0x204]
fstp qword [esp]
push eax
call fcn.004a12fa
jmp 0x461982
cmp dword [ebp - 0x90], edx
je 0x4618cc
fld qword [ebp - 0x11c]
push 0x4cf598
push ecx
push ecx
lea eax, [ebp - 0x204]
fstp qword [esp]
push eax
call fcn.004a12fa
jmp 0x461982
cmp dword [ebp + 0x20], 0x64
jne 0x4618e5
xor eax, eax
cmp eax, edx
jne 0x4618e5
push dword [ebp - 0x11c]
push str.0x_p
jmp 0x46192a
mov ecx, dword [ebp - 0xa8]
cmp ecx, 1
jne 0x461900
xor eax, eax
cmp eax, edx
jne 0x461900
movsx eax, byte [ebp - 0x11c]
push eax
jmp 0x461925
cmp ecx, 2
jne 0x461914
xor eax, eax
cmp eax, edx
jne 0x461914
movsx eax, word [ebp - 0x11c]
jmp 0x4618fd
cmp ecx, 4
jne 0x46193c
xor eax, eax
cmp eax, edx
jne 0x46193c
push dword [ebp - 0x11c]
push 0x4c72f0
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x461875
cmp ecx, 8
jne 0x461967
xor eax, eax
cmp eax, edx
jne 0x461967
push dword [ebp - 0x118]
lea eax, [ebp - 0x204]
push dword [ebp - 0x11c]
push str._I64d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x461982
push dword [ebp + 0x30]
lea eax, [ebp - 0x204]
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push eax
call fcn.004a1252
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x204]
push eax
push dword [ebp + 0x7c]
call fcn.00445c44
lea ecx, [ebp + 0x7c]
call fcn.0043fe25
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
je 0x4619cf
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x461dd0
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x20], edi
jne 0x461a11
cmp dword [ebp + 0x54], edi
jne 0x461a11
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
cmp eax, edi
jmp 0x4614a5
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x461a69
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.00414c4e
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x461a41
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.00411019
cmp si, di
je 0x461a59
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x461a69
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x8c], edi
je 0x461a91
cmp byte [ebp + 0x7f], 0
je 0x461a86
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00449899
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x11c]
jmp 0x461aec
cmp dword [ebp - 0x80], edi
je 0x461ab6
cmp byte [ebp + 0x7f], 0
je 0x461aab
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00449899
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x11c]
jmp 0x461aec
cmp dword [ebp - 0x90], edi
jne 0x461a96
cmp byte [ebp + 0x7f], 0
je 0x461adc
push dword [ebp + 0xc]
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00453cc7
add esp, 0xc
jmp 0x461aec
mov eax, dword [ebp - 0x20]
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov eax, dword [ebp + 0x70]
cmp word [eax], di
je 0x461b48
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x461b0b
mov al, byte [ebp + 0x50]
add dword [ebp + 0x70], 2
mov byte [ebp + 0x7b], al
push dword [ebp + 0xc]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
call fcn.00453cc7
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x461b42
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004b4630
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x54]
add dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
mov edi, eax
test edi, edi
jne 0x460cd1
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4c6a64
push dword [ebp + 0x4c]
call fcn.0041556a
mov edi, eax
test edi, edi
jne 0x460cd1
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
je 0x461bb1
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x461dd0
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe8], ecx
js 0x461c19
jg 0x461bcf
test eax, eax
jbe 0x461c19
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004b4580
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe8], edx
mov dword [ebp + 0x7c], eax
call fcn.004465d3
mov eax, dword [ebp + 0x7c]
add eax, eax
sub eax, dword [ebp - 0x4c]
push eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x4c]
push 0
push eax
call fcn.004b4520
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x1c]
xor esi, esi
inc esi
cmp dword [ebp - 0x94], esi
jl 0x461c52
push 4
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.0044680d
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x94]
jle 0x461c2a
push dword [ebp + 0x78]
push dword [ebp + 0x10]
push edi
call fcn.00414839
jmp 0x461689
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x14]
add edi, 4
mov edx, dword [edi]
xor ecx, ecx
test eax, eax
mov dword [ebp + 0x78], edx
jg 0x461cec
jl 0x461c84
cmp dword [ebp - 0x60], ecx
jae 0x461cec
and dword [edi], 0
mov byte [ebp + 0x7f], 1
mov eax, dword [ebp - 0x60]
add eax, esi
push 0
adc ecx, ebx
push 2
push ecx
push eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ecx
call fcn.004b4580
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe8], edx
call fcn.004465d3
mov ecx, dword [edi]
lea eax, [ebx + ebx]
and word [ecx + eax + 2], 0
mov ecx, dword [edi]
and word [eax + ecx], 0
cmp byte [ebp + 0x4b], 1
mov edi, dword [edi]
jne 0x461cf2
cmp byte [ebp + 0x7f], 0
je 0x461ce5
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.00414839
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x461d19
mov byte [ebp + 0x7f], 0
jmp 0x461c8b
cmp byte [ebp + 0x4b], 2
jne 0x461d26
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x461d0f
push dword [ebp + 0x78]
push eax
call fcn.00414839
jmp 0x461d16
push edi
push eax
call fcn.004147ef
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00414839
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4e3d84
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x461d7c
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00411019
mov esi, eax
cmp esi, edi
je 0x461d7c
test byte [esi + 0x17], 0xc0
je 0x461d69
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x461d7c
push 0x4c6a64
lea ecx, [esi + 4]
call fcn.0045066c
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043fe25
lea ecx, [ebp + 0x44]
call fcn.0043fe25
lea ecx, [ebp + 0x40]
call fcn.0043fe25
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
je 0x460648
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x460648
lea ecx, [ebp + 0x5c]
call fcn.0043fe25
mov eax, 0x4e3d84
test eax, eax
je 0x461dcd
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x10]
lea ecx, [ebp - 0x64]
call fcn.0043fe25
pop edi
lea ecx, [ebp - 0xb4]
call fcn.0043fe25
lea ecx, [ebp - 0x9c]
call fcn.0043fe25
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10