Function at 0x1005f5c0
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.100463df
lea eax, [ebp + 0x14]
push eax
call fcn.1003f9c4
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x1005f65d
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x1005f655
lea ecx, [ebp - 0xb4]
call fcn.10046123
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x1005f681
cmp cx, 0x3d
je 0x1005f689
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x1005f676
mov dword [ebp + 0x60], 0x100c6a64
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x3f], 0
je 0x1005f6a2
mov byte [ebp + 0x3f], 1
jmp 0x1005f6aa
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.10010e64
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x1005f700
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x88], ecx
jmp 0x1005f6d3
cmp ax, 0x7e
je 0x1005f6de
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x1005f6cb
cmp word [edx], 0x7e
je 0x1005f6ee
mov esi, 0x80070057
jmp 0x100619a7
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x1005f700
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 0x100601c6
mov dword [ebp - 4], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x100601c6
mov eax, edi
call fcn.10002df6
test al, al
jne 0x100601c6
cmp di, 0x2e
je 0x100601bb
cmp di, 0x24
je 0x100601bb
cmp di, 0x25
je 0x100601bb
cmp di, 0x2a
jne 0x1005f767
or byte [ebp + 0x67], 4
jmp 0x100601bb
push 0x7e
pop ecx
cmp di, cx
jne 0x1005f7bc
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x1005f780
or byte [ebp + 0x67], 2
jmp 0x100601b9
cmp di, cx
jne 0x1005f7bc
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x1005f797
or byte [ebp + 0x67], 8
jmp 0x100601b9
cmp di, cx
jne 0x1005f7bc
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x1005f7ae
or byte [ebp + 0x67], 0xa
jmp 0x100601b9
cmp di, cx
jne 0x1005f7bc
or byte [ebp + 0x67], 1
jmp 0x100601bb
cmp di, 0x3c
jne 0x1005f7cb
mov byte [ebp + 0x4b], 1
jmp 0x100601bb
cmp di, 0x3e
jne 0x1005f7da
mov byte [ebp + 0x4b], 2
jmp 0x100601bb
push 4
push esi
push str._std
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f800
add esi, 6
mov dword [ebp - 0xb8], 0x80
jmp 0x100601bb
push 4
push esi
push 0x100d029c
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f826
add esi, 6
mov dword [ebp - 0xb8], 0x40
jmp 0x100601bb
push 4
push esi
push 0x100d0294
call fcn.10040df5
add esp, 0xc
test al, al
jne 0x1005fbeb
push 4
push esi
push str._def
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f85e
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x100601bb
push 4
push esi
push str._tom
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f881
add esi, 6
mov dword [ebp + 0x2c], 1
jmp 0x100601bb
push 4
push esi
push str._tow
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f8a4
add esi, 6
mov dword [ebp + 0x2c], 2
jmp 0x100601bb
push 5
push esi
push str._copy
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f8c7
add esi, 8
mov dword [ebp + 0x2c], 4
jmp 0x100601bb
push 4
push esi
push str._cmp
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f8ea
add esi, 8
mov dword [ebp + 0x2c], 0x100
jmp 0x100601bb
push 5
push esi
push str._addr
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f90b
push 8
pop eax
add esi, eax
mov dword [ebp + 0x2c], eax
jmp 0x100601bb
push 0xb
push esi
push str._mkfixdummy
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f92e
add esi, 0x14
mov dword [ebp + 0x2c], 0x83
jmp 0x100601bb
push 8
push esi
push str._mkdummy
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f951
add esi, 0xe
mov dword [ebp + 0x2c], 0x81
jmp 0x100601bb
push 5
push esi
push str._make
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f974
add esi, 8
mov dword [ebp + 0x2c], 0x80
jmp 0x100601bb
push 5
push esi
push str._swap
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f997
add esi, 8
mov dword [ebp + 0x2c], 0x20
jmp 0x100601bb
push 5
push esi
push str._zero
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005f9b6
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x100601bb
push 4
push esi
push str._ret
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fa07
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x1005f9e2
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.10014a5c
test al, al
je 0x1005fa00
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.10053a89
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x100601bb
push 4
push esi
push str._get
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fa44
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x38], 1
mov dword [ebp + 0x70], esi
jne 0x1005fa33
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.10014a5c
test al, al
je 0x1005fa00
lea eax, [ebp + 0x38]
jmp 0x1005f9f1
push 3
push esi
push 0x100d0220
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fa64
add esi, 4
mov byte [ebp + 0xb], 1
jmp 0x100601bb
push 2
push esi
push 0x100d021c
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fa93
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0xa0], 1
lea eax, [ebp - 0xa0]
jmp 0x1005f9f1
push 2
push esi
push 0x100d0218
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fb1a
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.1007ed98
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.1007ed98
mov esi, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x68], esi
call fcn.10053a89
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.10053a89
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x1005faff
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 0x100601bb
jmp 0x1005fa00
cmp di, 0x2d
jne 0x1005fdb2
inc esi
push 1
inc esi
push esi
push 0x100cb458
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fbcb
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 0x1005fb78
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x1005fb70
cmp cx, 0x3a
je 0x1005fb70
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x1005fb55
cmp word [esi], bx
je 0x1005fb78
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.10053fbc
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x1c], eax
jl 0x1006021d
mov esi, dword [ebp - 0xd8]
cmp word [esi], di
mov dword [ebp - 4], ebx
jne 0x1005fbbd
mov esi, 0x100d0210
mov eax, dword [ebp - 0x70]
cmp eax, ebx
jle 0x1005fbcb
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fbf3
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x100601bb
push 5
push esi
push str.wchar
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fc19
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x100601bb
push 5
push esi
push str.short
call fcn.10040df5
add esp, 0xc
test al, al
jne 0x1005fc07
push 3
push esi
push 0x100cf600
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fc4e
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x100601bb
push 6
push esi
push str.intptr
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fc70
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x100601bb
push 5
push esi
push str.intpe
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fc92
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x100601bb
push 5
push esi
push str.float
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fcb4
mov dword [ebp - 0x8c], edi
mov dword [ebp + 0x50], edi
jmp 0x1005fc0e
push 6
push esi
push 0x100cf5f0
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fcd3
push 8
pop eax
mov dword [ebp - 0x80], eax
mov dword [ebp + 0x50], eax
jmp 0x1005fc65
push 7
push esi
push str.ldouble
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fcfe
push 8
pop eax
mov dword [ebp - 0x90], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x100601bb
push 5
push esi
push str.int64
call fcn.10040df5
add esp, 0xc
test al, al
push 8
jne 0x1005fda7
push esi
push str.longlong
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fd39
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x1005fc8a
push edi
push esi
push str.long
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fd54
mov dword [ebp + 0x50], edi
jmp 0x1005fbe8
push 6
push esi
push str.intsys
call fcn.10040df5
add esp, 0xc
test al, al
jne 0x1006011f
push 3
push esi
push 0x100cf2ac
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100601bb
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x1005fda5
cmp ax, 0x41
jb 0x1005fda5
cmp ax, 0x5a
jbe 0x100601bb
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x1005fc8a
cmp di, 0x3f
jne 0x100601bb
inc esi
push 1
inc esi
push esi
push 0x100cb458
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fe65
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 0x1005fe12
mov eax, ecx
call fcn.10002df6
test al, al
jne 0x1005fe0a
cmp cx, 0x3a
je 0x1005fe07
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x1005fdea
jmp 0x1005fe0a
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x1005fe12
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.10053fbc
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x1c], eax
jl 0x1006021d
mov esi, dword [ebp - 0xcc]
cmp word [esi], di
mov dword [ebp - 4], ebx
jne 0x1005fe57
mov esi, 0x100d0210
mov eax, dword [ebp - 0x70]
cmp eax, ebx
jle 0x1005fe65
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fec1
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 0x1005fe99
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x1005feab
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x100601ac
mov dword [ebp + 0x30], str.0x_02I64X
jmp 0x100601aa
push 5
push esi
push str.wchar
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fee0
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x20], edx
jmp 0x1005feff
push 5
push esi
push str.short
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005ff3c
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 0x1005ff14
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x1005ff26
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x100601ac
mov dword [ebp + 0x30], str.0x_04I64X
jmp 0x100601aa
push 3
push esi
push 0x100cf600
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005ff77
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 0x1005ff6e
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x1005ffbc
push 6
push esi
push str.intptr
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005ffc7
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 0x1005ffa6
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x1005ffb8
mov dword [ebp - 0xa8], edi
cmp cx, 0x30
jne 0x100601ac
jmp 0x100601aa
push 5
push esi
push str.float
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1005fff2
add esi, 8
mov dword [ebp - 0x8c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x20], edi
jmp 0x100601bb
push 6
push esi
push 0x100cf5f0
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1006001d
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 0x100601bb
push 7
push esi
push str.ldouble
call fcn.10040df5
add esp, 0xc
test al, al
je 0x1006003f
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x90], eax
jmp 0x1006000f
push 5
push esi
push str.int64
call fcn.10040df5
add esp, 0xc
test al, al
push 8
je 0x1006005a
pop edx
add esi, edx
jmp 0x10060072
push esi
push str.longlong
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100600ab
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 0x10060083
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x10060095
mov dword [ebp - 0xa8], edx
cmp cx, 0x30
jne 0x100601ac
mov dword [ebp + 0x30], str.0x_016I64X
jmp 0x100601aa
push edi
push esi
push str.long
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100600e4
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 0x1006018b
lea esi, [eax - 2]
jmp 0x1006018b
push 5
push esi
push str.intpe
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100600fd
add esi, 8
jmp 0x1006017a
push 6
push esi
push str.intsys
call fcn.10040df5
add esp, 0xc
test al, al
je 0x10060161
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x20], edi
je 0x1006011f
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x100e2c3d], 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 0x100601bb
cmp byte [0x100e2c3d], 3
mov esi, eax
je 0x10060158
mov dword [ebp + 0x30], str.0x_08I64X
jmp 0x100601bb
mov dword [ebp + 0x30], str.0x_016I64X
jmp 0x100601bb
push 3
push esi
push 0x100cf2ac
call fcn.10040df5
add esp, 0xc
test al, al
je 0x100601bb
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 0x1006018b
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x1006019d
mov dword [ebp - 0xa8], edi
cmp cx, 0x30
jne 0x100601ac
mov dword [ebp + 0x30], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x100601bb
add dword [ebp + 0x30], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 4], ebx
jne 0x1005f71d
lea ecx, [ebp - 0x64]
call fcn.10046123
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.1003ac0c
push 0x3b
push 0x2c
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.1003ac0c
cmp dword [ebp + 0x2c], 8
mov eax, dword [ebp - 0xb4]
mov dword [ebp + 0x4c], eax
je 0x10060227
cmp word [eax], bx
jne 0x10060227
mov eax, dword [ebp - 0x64]
cmp word [eax], bx
jne 0x10060227
xor esi, esi
jmp 0x1006199e
mov esi, 0x80070057
jmp 0x100619a6
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 0x10060268
dec dword [ebp - 0x24]
js 0x1006025f
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x10060256
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2a], 0
je 0x10060268
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x38]
cmp eax, ebx
jle 0x1006027c
dec eax
js 0x1006027c
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x10060273
mov dword [ebp - 4], edx
cmp byte [ebp + 0x3f], 0
je 0x10060289
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x2c], ebx
push 0x100e3d7c
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 0x10060303
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.10046168
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 0x1006100b
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.10046123
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 0x1006041d
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.1005f56a
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 0x10060da1
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.1005f56a
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x10060400
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.1005f56a
add esp, 0xc
test eax, eax
jle 0x10060400
cmp dword [ebp + 0x38], edi
jne 0x10060409
cmp dword [ebp - 0x40], edi
je 0x10060da1
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.100b62f0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x38], edi
je 0x10060da1
cmp dword [ebp - 0x40], edi
jne 0x10060da1
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x40], eax
jmp 0x10060da1
cmp byte [ebp + 0xb], 0
je 0x1006043b
push dword [ebp + 0x60]
push dword [ebp - 4]
call fcn.10049c3e
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x10060c8d
test byte [ebp + 0x2c], 0x80
je 0x1006077f
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 0x1006052c
push 0x26
pop eax
push 2
mov byte [ebp + 0x2b], 1
pop ecx
cmp ax, 0x3b
je 0x100604ad
cmp ax, 0x2c
je 0x100604ad
cmp ax, 0x3a
je 0x100604ad
cmp ax, 0x40
je 0x100604ad
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x10060488
mov ax, word [esi]
cmp ax, bx
je 0x100604bd
mov word [esi], bx
add esi, ecx
mov dword [ebp + 0x34], esi
cmp ax, 0x40
jne 0x100604fa
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x38], esi
je 0x100604fa
cmp ax, 0x3b
je 0x100604ed
cmp ax, 0x2c
je 0x100604ed
cmp ax, 0x3a
je 0x100604ed
add esi, ecx
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x100604ce
cmp word [esi], bx
je 0x100604fa
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.10010cdd
cmp eax, ebx
je 0x1006104c
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 0x1006063a
mov dword [ebp - 0x74], esi
jmp 0x10060551
cmp ax, 0x3b
je 0x10060556
cmp ax, 0x2c
je 0x10060556
cmp ax, 0x3a
je 0x10060556
cmp ax, 0x40
je 0x10060556
inc esi
inc esi
mov ax, word [esi]
mov dword [ebp + 0x34], esi
cmp ax, bx
jne 0x10060531
mov ax, word [esi]
cmp ax, bx
je 0x10060566
mov word [esi], bx
inc esi
inc esi
mov dword [ebp + 0x34], esi
cmp ax, 0x40
jne 0x100605a3
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x38], esi
je 0x100605a3
cmp ax, 0x3b
je 0x10060596
cmp ax, 0x2c
je 0x10060596
cmp ax, 0x3a
je 0x10060596
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
mov dword [ebp + 0x34], esi
jne 0x10060577
cmp word [esi], bx
je 0x100605a3
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 0x1006061a
mov eax, dword [ebp - 0x74]
add eax, 0xa
cmp word [eax], bx
je 0x1006104c
mov ecx, 0x100c6a64
push ecx
push ecx
push ecx
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
push eax
call fcn.10042a44
cmp eax, ebx
je 0x1006104c
cmp dword [eax + 4], 0x14
jne 0x1006104c
cmp dword [eax + 0x48], 0xfffffffe
jne 0x1006104c
cmp dword [eax + 0x50], ebx
jle 0x1006104c
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 0x1006063a
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.1005f56a
mov eax, dword [ebp - 0xc0]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x38], ebx
je 0x10060687
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.1005f56a
add esp, 0xc
test eax, eax
jle 0x10060687
mov eax, dword [ebp - 0xbc]
cmp eax, ebx
jl 0x10060687
mov ecx, dword [ebp - 0xc0]
jg 0x10060670
cmp ecx, ebx
jbe 0x10060687
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 0x1006069a
inc esi
inc esi
mov dword [ebp + 0x34], esi
cmp word [esi], 0x2a
sete bl
test bl, bl
je 0x100606ae
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.1005f56a
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x100606d5
mov dword [ebp + 0x60], 0x100c78c2
jmp 0x10060c8d
cmp eax, 1
jge 0x10060709
cmp byte [ebp + 0x2b], 0
jne 0x1006072a
test bl, bl
je 0x100606f3
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x1006072d
cmp byte [ebp - 5], 0
jg 0x1006072a
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x1006072d
cmp byte [ebp + 0x2b], 0
je 0x1006072a
mov ecx, dword [ebp - 0xc4]
cmp dword [ebp - 0x14], ecx
jl 0x1006072a
jg 0x10060723
mov eax, dword [ebp - 0x18]
cmp eax, edi
jbe 0x1006072d
mov eax, edi
mov dword [ebp - 0x14], ecx
jmp 0x1006072d
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x10061086
jg 0x10060740
cmp eax, esi
jb 0x10061086
mov esi, eax
mov eax, dword [ebp + 0x2c]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x10060da1
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.10010cdd
test eax, eax
je 0x100610af
test byte [eax + 0x17], 0xc0
je 0x100610c3
and dword [eax + 4], ebx
jmp 0x100610c3
xor edi, edi
cmp dword [ebp + 0x2c], edi
je 0x10060c94
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x74], edi
xor ecx, ecx
jmp 0x100607ae
cmp cx, 0x2c
je 0x100607bb
cmp cx, 0x3b
je 0x100607bb
cmp cx, 0x3a
je 0x100607bb
cmp cx, 0x7c
je 0x100607bb
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x1c], eax
jne 0x10060794
jmp 0x100607ca
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.1003ac0c
mov ecx, dword [ebp - 4]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.10010cdd
cmp eax, edi
je 0x100615b3
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 0x10060859
push dword [ebp - 0x64]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.1004884d
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x100610f8
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 0x10060c8d
cmp ecx, 4
jne 0x10060912
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.10010cdd
cmp word [ebp - 0x74], 0
mov edi, eax
jne 0x10061148
test edi, edi
je 0x10060da1
test byte [edi + 0x17], 0xc0
je 0x10060da1
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 0x100608b5
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 0x10061787
cmp ebx, edx
jl 0x10061787
jg 0x100608e6
cmp esi, ecx
jbe 0x10061787
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
jmp 0x10061073
cmp ecx, 0x100
jne 0x10060b70
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.10010cdd
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.1007edb8
lea eax, [ebp]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1007edb8
and dword [ebp + 0x38], 0
add esp, 0x10
cmp dword [ebp + 4], 0
jg 0x1006099e
jl 0x10060991
cmp dword [ebp], 0
jae 0x1006099e
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.1007edb8
mov eax, dword [ebp + 0x1c]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x100609c4
cmp cx, 0x69
jne 0x100609d6
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x74], ecx
jne 0x100609dd
jmp 0x100609d9
mov ecx, dword [ebp - 0x74]
and dword [ebp + 0x38], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x100608e6
jg 0x100609f3
cmp dword [ebp - 0x34], eax
jb 0x100608e6
cmp dword [ebp - 0x28], eax
jl 0x100608e6
jg 0x10060a07
cmp dword [ebp - 0x2c], eax
jb 0x100608e6
cmp dword [ebp + 4], eax
jl 0x100608e6
jg 0x10060a1b
cmp dword [ebp], eax
jbe 0x100608e6
cmp dword [ebp - 0x28], ebx
jg 0x100608e6
jl 0x10060a2f
cmp dword [ebp - 0x2c], esi
ja 0x100608e6
mov eax, dword [ebp - 0x120]
cmp dword [ebp - 0x30], eax
jg 0x100608e6
jl 0x10060a49
cmp dword [ebp - 0x34], edi
ja 0x100608e6
cmp dword [ebp + 0x38], 0
jne 0x10060a95
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x10060a69
jg 0x10060a65
cmp edi, esi
jbe 0x10060a69
mov edi, esi
mov eax, ebx
cmp dword [ebp + 4], eax
jl 0x10060a7b
jg 0x10060a75
cmp dword [ebp], edi
jbe 0x10060a7b
mov dword [ebp], edi
mov dword [ebp + 4], eax
test cl, 0x20
je 0x10060a95
push 0
push 2
push dword [ebp + 4]
push dword [ebp]
call fcn.100b4150
mov dword [ebp], eax
mov dword [ebp + 4], edx
cmp dword [ebp + 4], 0
jl 0x10060b61
jg 0x10060aab
cmp dword [ebp], 0
jbe 0x10060b61
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 0x10060ae8
cmp dword [ebp + 0x38], 0
je 0x10060adb
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x10060b5e
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x10060b5e
cmp dx, 0x53
jne 0x10060b0b
cmp dword [ebp + 0x38], 0
je 0x10060afe
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x10060b5e
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x10060b5e
cmp dx, 0x69
jne 0x10060b2e
cmp dword [ebp + 0x38], 0
je 0x10060b21
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x10060b5e
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x10060b5e
cmp dx, 0x49
jne 0x10060b51
cmp dword [ebp + 0x38], 0
je 0x10060b44
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x10060b5e
push dword [ebp]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x10060b5e
push dword [ebp]
push ecx
push eax
call fcn.1003fa82
add esp, 0xc
mov dword [ebp + 0x34], eax
movsx eax, word [ebp + 0x34]
push eax
push 0x100c72f0
jmp 0x10060830
cmp ecx, 1
jne 0x10060c18
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.100b4200
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe8], edx
call fcn.10045ff1
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 0x10060bc4
jl 0x10060bbd
cmp esi, ebx
jae 0x10060bc4
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x10060bd9
mov eax, dword [ebp - 0xe8]
cmp edx, eax
jl 0x10060bd9
jg 0x10060bd4
cmp esi, edi
jbe 0x10060bd9
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.100b4150
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.10046168
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 0x10060da1
cmp ecx, 2
jne 0x10060c70
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xac], ebx
call fcn.10046168
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x100e2be4]
mov esi, eax
cmp esi, edi
jge 0x10060c49
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.10046168
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 0x10060da1
cmp ecx, 0x20
jne 0x1006194a
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 0x10060da1
cmp byte [ebp + 0x67], 0
je 0x10060cc3
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x10060cc3
xor ecx, ecx
mov cl, byte [ebp - 0xb8]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.1005026c
mov ecx, dword [ebp - 4]
push eax
call fcn.1005f470
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xa0]
dec eax
cmp eax, edi
jl 0x10060ced
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.10057b62
dec edi
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x60], eax
jne 0x10060cd1
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x10060d14
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.1005eb1f
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 0x1006125f
jl 0x10060d33
cmp dword [ebp + 0x20], edi
ja 0x1006125f
cmp dword [ebp + 0x54], edi
jg 0x100615a5
jl 0x10060d47
cmp dword [ebp + 0x50], edi
ja 0x100615a5
cmp byte [ebp + 0x4b], 0
je 0x10060d91
cmp ebx, edi
jl 0x100612b7
jg 0x10060d5f
cmp esi, edi
jbe 0x100612b7
mov edi, 0x100e3d7c
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.10010cdd
test eax, eax
mov dword [ebp + 0x10], eax
jne 0x10061831
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10060da1
cmp byte [ebp + 0x3f], 0
je 0x10060da1
cmp byte [ebp + 0x2a], 0
je 0x10061910
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 0x10], eax
je 0x10060dd9
cmp byte [ebp + 0x7c], al
jne 0x10060dd9
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x10060dd9
cmp byte [ebp + 0x73], al
jne 0x10060dd9
cmp dword [ebp - 0x58], eax
jge 0x10060dd9
cmp byte [ebp + 0x3f], al
jne 0x10060dd9
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x10060fe3
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.10010cdd
mov edi, eax
test edi, edi
mov dword [ebp - 0xac], edi
jne 0x10060e57
cmp dword [ebp - 0x58], eax
jge 0x10060e4b
cmp byte [ebp + 0x73], al
je 0x10060e08
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x10060e0d
mov ecx, esi
mov dword [ebp - 0x74], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x100c6a64
jne 0x10060e1b
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.1001520e
cmp dword [ebp - 0x88], 0
mov edi, eax
je 0x10060e47
test edi, edi
je 0x10060e4b
push dword [ebp - 0x88]
lea ecx, [edi + 8]
call fcn.100502c8
test edi, edi
jne 0x10060e57
mov dword [ebp + 0x10], 1
jmp 0x10060fe3
cmp dword [ebp - 0x58], 0
jl 0x10060f69
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 0x10060e87
jb 0x10060e7f
cmp dword [ebp - 0x3c], eax
ja 0x10060e87
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x10060e8d
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 0x10060fe3
jb 0x10060eb0
cmp dword [ebp - 0x60], esi
jae 0x10060fe3
cmp dword [ebp - 0x38], 0
ja 0x10060ec0
cmp dword [ebp - 0x3c], 0
jbe 0x10060fe3
cmp edx, 2
jb 0x10060f58
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x10060fe3
ja 0x10060edf
cmp dword [ebp - 0x3c], edx
jb 0x10060fe3
cmp edx, 2
jne 0x10060f0d
cmp edi, ecx
ja 0x10060fe3
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 0x10060fe3
cmp edx, 4
jne 0x10060f2a
cmp edi, ecx
ja 0x10060fe3
mov eax, dword [ebp - 0x10]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x10060fe3
cmp edx, 8
jne 0x10060f58
cmp edi, ecx
ja 0x10060fe3
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 0x10060fe3
push dword [ebp - 0x3c]
push dword [ebp - 0x10]
push edi
call fcn.100b40f0
add esp, 0xc
jmp 0x10060fe3
cmp byte [ebp + 0x3f], 0
jne 0x10060fe3
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x10060fa8
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x10060fa0
cmp byte [ebp + 0x73], 0
je 0x10060f90
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.100401ae
add esp, 0x10
jmp 0x10060fe3
test al, al
je 0x10060fa8
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x10060fd4
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 0x10060fe3
test ecx, ecx
je 0x10060fe3
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.10002f07
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
cmp dword [ebp - 0x7c], 0
jle 0x10061983
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.10042c3f
push dword [ebp - 0x68]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xe4]
push esi
call fcn.10042c3f
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x6c], eax
add esp, 0x18
add dword [ebp - 0x68], eax
jmp 0x10060303
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
cmp eax, ebx
je 0x1006107c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x1006199e
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
cmp eax, esi
jmp 0x10061073
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x100c6a64
push dword [ebp + 0x4c]
call fcn.1001520e
xor ecx, ecx
cmp dword [ebp + 0x2c], 0x83
mov edx, 0xc0000000
je 0x100610d8
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.1003f96c
jmp 0x1006194a
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.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
je 0x1006199e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1006199e
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.1007edb8
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1007edb8
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.1007edb8
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x100608e6
jg 0x100611a5
cmp dword [ebp - 0x34], 0
jb 0x100608e6
cmp dword [ebp - 0x28], 0
jl 0x100608e6
jg 0x100611bb
cmp dword [ebp - 0x2c], 0
jbe 0x100608e6
cmp dword [ebp - 0x30], ebx
jg 0x100608e6
jl 0x100611cf
cmp dword [ebp - 0x34], esi
ja 0x100608e6
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x24]
jg 0x100608e6
mov ecx, dword [ebp - 0x4c]
jl 0x100611e9
cmp ecx, dword [ebp + 0x20]
ja 0x100608e6
test eax, eax
jg 0x100611f7
jl 0x100611f3
test ecx, ecx
jae 0x100611f7
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 0x10061216
jg 0x10061211
cmp dword [ebp - 0x2c], esi
jbe 0x10061216
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x24]
jl 0x1006122d
jg 0x10061225
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x20]
jbe 0x10061230
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x24]
jmp 0x10061230
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x1006194a
jg 0x10061242
test edx, edx
jbe 0x1006194a
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.100144b5
add esp, 0xc
jmp 0x1006194a
cmp dword [ebp + 0x20], 0x2a
jne 0x1006126d
cmp eax, edi
je 0x100615b3
cmp dword [ebp - 0x94], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xac], eax
jle 0x10061288
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.10046123
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.1003ac0c
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x100612e3
lea ecx, [ebp + 0x7c]
call fcn.1003f96c
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
cmp eax, edi
jmp 0x10061971
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x100612f5
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.100538c7
add esp, 0xc
test bl, bl
je 0x10061329
push dword [ebp - 0xc]
movsx eax, bl
push dword [ebp - 0x10]
cdq
push edx
push eax
call fcn.100b4200
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 0x1006135a
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.10014a5c
test al, al
je 0x10061392
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.10042554
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 0x100613b3
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.10010cdd
test eax, eax
je 0x100613b3
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 0x10061553
jg 0x100613ce
cmp dword [ebp - 0x10], ebx
jb 0x10061553
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x1c]
xor esi, esi
inc esi
cmp dword [ebp - 0x94], esi
jl 0x10061408
push 4
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.100463a2
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x94]
jle 0x100613e0
push dword [ebp - 0xac]
lea eax, [ebp - 0x11c]
push edi
push eax
call fcn.100144ff
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x8c], edx
je 0x1006144b
fld dword [ebp - 0x11c]
push 0x100cf5d0
push ecx
lea eax, [ebp - 0x204]
fstp dword [esp]
push eax
call fcn.100a0e77
add esp, 0xc
jmp 0x10061553
cmp dword [ebp - 0x80], edx
je 0x10061471
fld qword [ebp - 0x11c]
push 0x100cf5d8
push ecx
push ecx
lea eax, [ebp - 0x204]
fstp qword [esp]
push eax
call fcn.100a0ea0
jmp 0x10061550
cmp dword [ebp - 0x90], edx
je 0x1006149a
fld qword [ebp - 0x11c]
push 0x100cf5e0
push ecx
push ecx
lea eax, [ebp - 0x204]
fstp qword [esp]
push eax
call fcn.100a0ea0
jmp 0x10061550
cmp dword [ebp + 0x20], 0x64
jne 0x100614b3
xor eax, eax
cmp eax, edx
jne 0x100614b3
push dword [ebp - 0x11c]
push str.0x_p
jmp 0x100614f8
mov ecx, dword [ebp - 0xa8]
cmp ecx, 1
jne 0x100614ce
xor eax, eax
cmp eax, edx
jne 0x100614ce
movsx eax, byte [ebp - 0x11c]
push eax
jmp 0x100614f3
cmp ecx, 2
jne 0x100614e2
xor eax, eax
cmp eax, edx
jne 0x100614e2
movsx eax, word [ebp - 0x11c]
jmp 0x100614cb
cmp ecx, 4
jne 0x1006150a
xor eax, eax
cmp eax, edx
jne 0x1006150a
push dword [ebp - 0x11c]
push 0x100c72f0
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x10061443
cmp ecx, 8
jne 0x10061535
xor eax, eax
cmp eax, edx
jne 0x10061535
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 0x10061550
push dword [ebp + 0x30]
lea eax, [ebp - 0x204]
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push eax
call fcn.100a0df8
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x204]
push eax
push dword [ebp + 0x7c]
call fcn.100457c2
lea ecx, [ebp + 0x7c]
call fcn.1003f96c
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
je 0x1006159d
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x1006199e
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x20], edi
jne 0x100615df
cmp dword [ebp + 0x54], edi
jne 0x100615df
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
cmp eax, edi
jmp 0x10061073
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x10061637
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.100a1095
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x1006160f
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.10010cdd
cmp si, di
je 0x10061627
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x10061637
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x8c], edi
je 0x1006165f
cmp byte [ebp + 0x7f], 0
je 0x10061654
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.10049467
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x11c]
jmp 0x100616ba
cmp dword [ebp - 0x80], edi
je 0x10061684
cmp byte [ebp + 0x7f], 0
je 0x10061679
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.10049467
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x11c]
jmp 0x100616ba
cmp dword [ebp - 0x90], edi
jne 0x10061664
cmp byte [ebp + 0x7f], 0
je 0x100616aa
push dword [ebp + 0xc]
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.100538c7
add esp, 0xc
jmp 0x100616ba
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 0x10061716
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x100616d9
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.100538c7
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x10061710
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.100b4200
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.10010cdd
mov edi, eax
test edi, edi
jne 0x1006089f
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x100c6a64
push dword [ebp + 0x4c]
call fcn.1001520e
mov edi, eax
test edi, edi
jne 0x1006089f
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
je 0x1006177f
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x1006199e
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe8], ecx
js 0x100617e7
jg 0x1006179d
test eax, eax
jbe 0x100617e7
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.100b4150
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe8], edx
mov dword [ebp + 0x7c], eax
call fcn.10046168
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.100b40f0
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 0x10061820
push 4
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.100463a2
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x94]
jle 0x100617f8
push dword [ebp + 0x78]
push dword [ebp + 0x10]
push edi
call fcn.100144ff
jmp 0x10061257
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 0x100618ba
jl 0x10061852
cmp dword [ebp - 0x60], ecx
jae 0x100618ba
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.100b4150
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe8], edx
call fcn.10046168
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 0x100618c0
cmp byte [ebp + 0x7f], 0
je 0x100618b3
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.100144ff
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x100618e7
mov byte [ebp + 0x7f], 0
jmp 0x10061859
cmp byte [ebp + 0x4b], 2
jne 0x100618f4
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x100618dd
push dword [ebp + 0x78]
push eax
call fcn.100144ff
jmp 0x100618e4
push edi
push eax
call fcn.100144b5
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.100144ff
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x100e3d7c
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1006194a
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.10010cdd
mov esi, eax
cmp esi, edi
je 0x1006194a
test byte [esi + 0x17], 0xc0
je 0x10061937
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x1006194a
push 0x100c6a64
lea ecx, [esi + 4]
call fcn.1005026c
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.1003f96c
lea ecx, [ebp + 0x44]
call fcn.1003f96c
lea ecx, [ebp + 0x40]
call fcn.1003f96c
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
je 0x10060216
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10060216
lea ecx, [ebp + 0x5c]
call fcn.1003f96c
mov eax, 0x100e3d7c
test eax, eax
je 0x1006199b
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x10]
lea ecx, [ebp - 0x64]
call fcn.1003f96c
pop edi
lea ecx, [ebp - 0xb4]
call fcn.1003f96c
lea ecx, [ebp - 0x9c]
call fcn.1003f96c
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10