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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x264
or dword [ebp - 0x68], 0xffffffff
or dword [ebp - 0x58], 0xffffffff
xor eax, eax
inc eax
push ebx
xor ebx, ebx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0xc], ecx
push esi
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x80], ebx
mov byte [ebp + 0x67], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp + 7], bl
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp + 0x2c], str._I64d
mov dword [ebp + 0x14], eax
call fcn.00444c7e
lea eax, [ebp + 0x14]
push eax
call fcn.0043e425
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45bfeb
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45bfe3
lea ecx, [ebp - 0xb0]
call fcn.00444a10
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45c00f
cmp cx, 0x3d
je 0x45c017
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45c004
mov dword [ebp + 0x60], 0x4bfa2c
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x37], 0
je 0x45c030
mov byte [ebp + 0x37], 1
jmp 0x45c038
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.00410df6
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45c088
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x80], ecx
jmp 0x45c05e
cmp ax, 0x7e
je 0x45c069
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45c056
cmp word [edx], 0x7e
je 0x45c079
mov esi, 0x80070057
jmp 0x45e2e3
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45c088
mov dword [ebp - 0x80], ebx
mov esi, dword [ebp + 0x78]
fldz
cmp esi, ebx
fstp qword [ebp - 0x54]
push edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x64], ebx
je 0x45cb48
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x45cb48
mov eax, edi
call fcn.00402d55
test al, al
jne 0x45cb48
cmp di, 0x2e
je 0x45cb3d
cmp di, 0x24
je 0x45cb3d
cmp di, 0x25
je 0x45cb3d
cmp di, 0x2a
jne 0x45c0ef
or byte [ebp + 0x67], 4
jmp 0x45cb3d
push 0x7e
pop ecx
cmp di, cx
jne 0x45c144
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45c108
or byte [ebp + 0x67], 2
jmp 0x45cb3b
cmp di, cx
jne 0x45c144
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45c11f
or byte [ebp + 0x67], 8
jmp 0x45cb3b
cmp di, cx
jne 0x45c144
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45c136
or byte [ebp + 0x67], 0xa
jmp 0x45cb3b
cmp di, cx
jne 0x45c144
or byte [ebp + 0x67], 1
jmp 0x45cb3d
cmp di, 0x3c
jne 0x45c153
mov byte [ebp + 0x4b], 1
jmp 0x45cb3d
cmp di, 0x3e
jne 0x45c162
mov byte [ebp + 0x4b], 2
jmp 0x45cb3d
push 4
push esi
push str._std
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c188
add esi, 6
mov dword [ebp - 0xa4], 0x80
jmp 0x45cb3d
push 4
push esi
push str._env
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c1ae
add esi, 6
mov dword [ebp - 0xa4], 0x40
jmp 0x45cb3d
push 4
push esi
push str._raw
call fcn.0043f884
add esp, 0xc
test al, al
jne 0x45c573
push 4
push esi
push str._def
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c1e6
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45cb3d
push 4
push esi
push str._tom
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c209
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45cb3d
push 4
push esi
push str._tow
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c22c
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45cb3d
push 5
push esi
push str._copy
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c24f
add esi, 8
mov dword [ebp + 0x30], 4
jmp 0x45cb3d
push 4
push esi
push str._cmp
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c272
add esi, 8
mov dword [ebp + 0x30], 0x100
jmp 0x45cb3d
push 5
push esi
push str._addr
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c293
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45cb3d
push 0xb
push esi
push str._mkfixdummy
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c2b6
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45cb3d
push 8
push esi
push str._mkdummy
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c2d9
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45cb3d
push 5
push esi
push str._make
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c2fc
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x45cb3d
push 5
push esi
push str._swap
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c31f
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x45cb3d
push 5
push esi
push str._zero
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c33e
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x45cb3d
push 4
push esi
push str._ret
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c38f
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45c36a
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.004148c8
test al, al
je 0x45c388
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004515da
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45cb3d
push 4
push esi
push str._get
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c3cc
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x70], esi
jne 0x45c3bb
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.004148c8
test al, al
je 0x45c388
lea eax, [ebp + 0x40]
jmp 0x45c379
push 3
push esi
push 0x4c8e08
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c3ec
add esi, 4
mov byte [ebp + 7], 1
jmp 0x45cb3d
push 2
push esi
push 0x4c8e04
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c41b
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x98]
jmp 0x45c379
push 2
push esi
push 0x4c8e00
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c4a2
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.004059c1
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004059c1
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x70], esi
call fcn.004515da
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004515da
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45c487
mov dword [ebp - 0x84], 1
mov eax, dword [ebp - 0x1c]
sub eax, esi
mov esi, dword [ebp + 0x70]
inc eax
cmp word [esi], 0x5d
mov dword [ebp - 0x68], eax
je 0x45cb3d
jmp 0x45c388
cmp di, 0x2d
jne 0x45c737
inc esi
push 1
inc esi
push esi
push 0x4c4298
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c553
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 0x45c500
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x45c4f8
cmp cx, 0x3a
je 0x45c4f8
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45c4dd
cmp word [esi], bx
je 0x45c500
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xbc], ebx
push eax
call fcn.0045197f
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45cb9f
mov esi, dword [ebp - 0xbc]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45c545
mov esi, 0x4c8df8
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45c553
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c57b
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x45cb3d
push 5
push esi
push str.wchar
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c5a1
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x45cb3d
push 5
push esi
push str.short
call fcn.0043f884
add esp, 0xc
test al, al
jne 0x45c58f
push 3
push esi
push 0x4c8338
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c5d6
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x45cb3d
push 6
push esi
push str.intptr
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c5f8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x45cb3d
push 5
push esi
push str.intpe
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c61a
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x45cb3d
push 5
push esi
push str.float
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c639
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
jmp 0x45c596
push 6
push esi
push str.double
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c65b
push 8
pop eax
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
jmp 0x45c5ed
push 7
push esi
push str.ldouble
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c683
push 8
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x45cb3d
push 5
push esi
push str.int64
call fcn.0043f884
add esp, 0xc
test al, al
push 8
jne 0x45c72c
push esi
push str.longlong
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c6be
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x45c612
push edi
push esi
push str.long
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c6d9
mov dword [ebp + 0x50], edi
jmp 0x45c570
push 6
push esi
push str.intsys
call fcn.0043f884
add esp, 0xc
test al, al
jne 0x45caa1
push 3
push esi
push 0x4c800c
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45cb3d
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x45c72a
cmp ax, 0x41
jb 0x45c72a
cmp ax, 0x5a
jbe 0x45cb3d
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x45c612
cmp di, 0x3f
jne 0x45cb3d
inc esi
push 1
inc esi
push esi
push 0x4c4298
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c7ea
inc esi
inc esi
xor ecx, ecx
mov cx, word [esi]
cmp cx, bx
push 0x2a
pop edi
mov dword [ebp + 0x1c], edi
mov edx, esi
je 0x45c797
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x45c78f
cmp cx, 0x3a
je 0x45c78c
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45c76f
jmp 0x45c78f
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x45c797
mov word [esi], bx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0x94]
push edx
push dword [ebp + 0xc]
mov dword [ebp - 0xd0], ebx
push eax
call fcn.0045197f
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45cb9f
mov esi, dword [ebp - 0xd0]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45c7dc
mov esi, 0x4c8df8
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45c7ea
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c846
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 + 0x1c], edx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45c81e
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45c830
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45cb2e
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45cb2c
push 5
push esi
push str.wchar
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c865
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x1c], edx
jmp 0x45c884
push 5
push esi
push str.short
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c8c1
push 2
pop eax
push eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x1c], eax
pop edx
add esi, 8
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45c899
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45c8ab
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45cb2e
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45cb2c
push 3
push esi
push 0x4c8338
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c8fc
add esi, edi
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], 0x64
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45c8f3
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x45c941
push 6
push esi
push str.intptr
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c94c
add esi, 0xa
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45c92b
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45c93d
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45cb2e
jmp 0x45cb2c
push 5
push esi
push str.float
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c974
add esi, 8
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
jmp 0x45cb3d
push 6
push esi
push str.double
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c9a2
push 8
pop eax
add esi, 0xa
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], eax
jmp 0x45cb3d
push 7
push esi
push str.ldouble
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45c9c1
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x45c994
push 5
push esi
push str.int64
call fcn.0043f884
add esp, 0xc
test al, al
push 8
je 0x45c9dc
pop edx
add esi, edx
jmp 0x45c9f4
push esi
push str.longlong
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45ca2d
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 + 0x1c], edx
je 0x45ca05
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45ca17
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45cb2e
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45cb2c
push edi
push esi
push str.long
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45ca66
mov eax, dword [ebp + 0x5c]
add esi, 6
cmp eax, ebx
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x2c], str.0x_I64X
je 0x45cb0d
lea esi, [eax - 2]
jmp 0x45cb0d
push 5
push esi
push str.intpe
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45ca7f
add esi, 8
jmp 0x45cafc
push 6
push esi
push str.intsys
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45cae3
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], edi
je 0x45caa1
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4dac31], 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 0x45cb3d
cmp byte [0x4dac31], 3
mov esi, eax
je 0x45cada
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45cb3d
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45cb3d
push 3
push esi
push 0x4c800c
call fcn.0043f884
add esp, 0xc
test al, al
je 0x45cb3d
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 + 0x1c], edi
je 0x45cb0d
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45cb1f
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45cb2e
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45cb3d
add dword [ebp + 0x2c], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 0x10], ebx
jne 0x45c0a5
lea ecx, [ebp - 0x6c]
call fcn.00444a10
mov esi, dword [ebp + 0xc]
push 0x3b
push 0x2c
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.0043970c
push 0x3b
push 0x2c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.0043970c
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x4c], eax
je 0x45cba9
cmp word [eax], bx
jne 0x45cba9
mov eax, dword [ebp - 0x6c]
cmp word [eax], bx
jne 0x45cba9
xor esi, esi
jmp 0x45e2da
mov esi, 0x80070057
jmp 0x45e2e2
cmp byte [ebp + 0x7c], 2
mov edx, esi
setge byte [ebp + 0x2b]
mov al, byte [ebp + 0x2b]
neg al
mov dword [ebp - 0x10], 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 0x45cbea
dec dword [ebp - 0x24]
js 0x45cbe1
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45cbd8
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45cbea
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x40]
cmp eax, ebx
jle 0x45cbfe
dec eax
js 0x45cbfe
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x45cbf5
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x37], 0
je 0x45cc0b
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x30], ebx
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp dword [ebp - 0x68], ebx
mov edi, dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov dword [ebp + 0x5c], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xd4], ebx
jle 0x45cc85
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.00444a55
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp + 0x5c]
lea esi, [eax + esi*2]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xd4], esi
jmp 0x45d9f7
xor esi, esi
push 0xa
xor eax, eax
pop ecx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
lea edi, [ebp - 0x10c]
rep stosd dword es:[edi], eax
xor ebx, ebx
lea eax, [ebp - 0x114]
lea ecx, [ebp + 0x44]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov byte [ebp + 0x73], bl
mov dword [ebp + 8], eax
mov dword [ebp + 0x3c], esi
call fcn.00444a10
lea eax, [ebp + 0x58]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0xb8]
xor ecx, ecx
cmp dword [ebp - 0x58], ecx
mov dword [ebp - 0xc0], 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 - 4], eax
mov dword [ebp], edx
mov dword [ebp - 0x40], 0xff000000
jl 0x45cd9f
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045befe
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 + 0x40], edi
je 0x45d78d
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045befe
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x45cd82
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x40], edi
call fcn.0045befe
add esp, 0xc
test eax, eax
jle 0x45cd82
cmp dword [ebp + 0x40], edi
jne 0x45cd8b
cmp dword [ebp - 0x40], edi
je 0x45d78d
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004af160
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x40], edi
je 0x45d78d
cmp dword [ebp - 0x40], edi
jne 0x45d78d
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
jmp 0x45d78d
cmp byte [ebp + 7], 0
je 0x45cdbd
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.004483b7
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x45d679
test byte [ebp + 0x30], 0x80
je 0x45d0e8
mov esi, dword [ebp + 0x60]
xor ecx, ecx
push 0x26
or edi, 0xffffffff
pop eax
cmp word [esi], ax
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp + 0x38], esi
mov ebx, edi
mov byte [ebp + 0x2a], cl
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x40], ecx
jne 0x45ce9d
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x45ce27
cmp ax, 0x2c
je 0x45ce27
cmp ax, 0x3a
je 0x45ce27
cmp ax, 0x40
je 0x45ce27
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45ce02
mov ax, word [esi]
cmp ax, cx
je 0x45ce37
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45ce74
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
je 0x45ce74
cmp ax, 0x3b
je 0x45ce67
cmp ax, 0x2c
je 0x45ce67
cmp ax, 0x3a
je 0x45ce67
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45ce48
cmp word [esi], cx
je 0x45ce74
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
mov ecx, dword [ebp - 0x10]
push 0
push 0xffffffffffffffff
push 0
push dword [ebp + 0x60]
call fcn.00410c6f
test eax, eax
je 0x45da38
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x45cf7f
push 5
push esi
push str._shm_
call dword [sym.imp.shlwapi.dll_StrCmpNIW]
test eax, eax
jne 0x45cfce
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45ced6
cmp ax, 0x3b
je 0x45cee1
cmp ax, 0x2c
je 0x45cee1
cmp ax, 0x3a
je 0x45cee1
cmp ax, 0x40
je 0x45cee1
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45cebc
mov ax, word [esi]
cmp ax, di
je 0x45cef1
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45cf2e
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
je 0x45cf2e
cmp ax, 0x3b
je 0x45cf21
cmp ax, 0x2c
je 0x45cf21
cmp ax, 0x3a
je 0x45cf21
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45cf02
cmp word [esi], di
je 0x45cf2e
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [ecx], di
je 0x45df9c
mov eax, 0x4bfa2c
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0044136c
cmp eax, edi
je 0x45df9c
cmp dword [eax + 4], 0x14
jne 0x45df9c
cmp dword [eax + 0x48], 0xfffffffe
jne 0x45df9c
cmp dword [eax + 0x50], edi
jle 0x45df9c
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x60], ecx
mov eax, dword [eax + 0x50]
dec eax
dec eax
cdq
mov ebx, eax
mov edi, edx
cmp dword [ebp + 0x40], 0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
je 0x45cff1
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0045befe
add esp, 0xc
test eax, eax
jle 0x45cff1
cmp dword [ebp - 0x9c], 0
jl 0x45cff1
mov eax, dword [ebp - 0xa0]
jg 0x45cfbb
test eax, eax
jbe 0x45cff1
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x9c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x45cff1
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045befe
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp + 0x38]
add esp, 0xc
mov dword [ebp + 0x60], eax
cmp word [esi], 0x7e
sete byte [ebp + 6]
cmp byte [ebp + 6], 0
je 0x45d004
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x13]
cmp byte [ebp + 0x13], 0
je 0x45d01b
inc esi
inc esi
and dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045befe
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x45d042
mov dword [ebp + 0x60], 0x4c080a
jmp 0x45d679
cmp eax, 1
jge 0x45d078
cmp byte [ebp + 0x2a], 0
jne 0x45d093
cmp byte [ebp + 0x13], 0
je 0x45d062
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x45d096
cmp byte [ebp + 6], 0
jg 0x45d093
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x45d096
cmp byte [ebp + 0x2a], 0
je 0x45d093
cmp dword [ebp - 0x14], edi
jl 0x45d093
jg 0x45d08c
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jbe 0x45d096
mov eax, ebx
mov dword [ebp - 0x14], edi
jmp 0x45d096
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x45da72
jg 0x45d0a9
cmp eax, esi
jb 0x45da72
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x45d78d
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.00410c6f
test eax, eax
je 0x45da9b
test byte [eax + 0x17], 0xc0
je 0x45daaf
and dword [eax + 4], ebx
jmp 0x45daaf
xor edi, edi
cmp dword [ebp + 0x30], edi
je 0x45d680
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x40], edi
xor ecx, ecx
jmp 0x45d117
cmp cx, 0x2c
je 0x45d124
cmp cx, 0x3b
je 0x45d124
cmp cx, 0x3a
je 0x45d124
cmp cx, 0x7c
je 0x45d124
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x45d0fd
jmp 0x45d133
mov cx, word [eax]
mov word [eax], di
inc eax
inc eax
mov word [ebp + 0x40], cx
mov dword [ebp + 0x24], eax
mov ecx, dword [ebp + 0xc]
push edi
push 0x2c
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043970c
mov ecx, dword [ebp - 0x10]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.00410c6f
cmp eax, edi
je 0x45df9c
lea edi, [eax + 4]
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x30]
add eax, 0x10
mov esi, dword [eax]
xor ebx, ebx
cmp ecx, 8
jne 0x45d1c2
push dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.004470b2
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x45dae4
push dword [edi]
push str.0x_p
lea eax, [ebp - 0x15c]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
lea eax, [ebp - 0x15c]
add esp, 0xc
push eax
mov dword [ebp + 0x60], eax
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x45d679
cmp ecx, 4
jne 0x45d2f5
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410c6f
cmp word [ebp + 0x40], 0
mov edi, eax
jne 0x45db34
test edi, edi
je 0x45d78d
test byte [edi + 0x17], 0xc0
je 0x45d78d
mov eax, dword [ebp + 0x60]
mov dword [ebp + 8], eax
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], ebx
cmp dword [ebp - 0x8c], 0
mov ecx, dword [ebp + 0x50]
mov dword [ebp + 0x78], ecx
jle 0x45d21e
and dword [ebp + 0x54], 0
push 4
pop ecx
mov eax, dword [ebp - 0x20]
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 0x45d24b
cmp ebx, edx
jl 0x45d24b
jg 0x45da38
cmp esi, ecx
ja 0x45da38
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe0], ecx
js 0x45d2ab
jg 0x45d261
test eax, eax
jbe 0x45d2ab
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004acfc0
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe0], edx
mov dword [ebp + 0x7c], eax
call fcn.00444a55
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.004acf60
add esp, 0xc
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
mov edi, dword [edi + 4]
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45d2e4
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.00444c41
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45d2bc
push dword [ebp + 0x78]
push dword [ebp + 8]
push edi
call fcn.004143a0
jmp 0x45dc43
cmp ecx, 0x100
jne 0x45d55c
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410c6f
or dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xb4], 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 - 0x118], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp + 0x38], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0xc], 0xfffffff8
call fcn.004059e1
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.004059e1
and dword [ebp + 0x40], 0
add esp, 0x10
cmp dword [ebp - 8], 0
jg 0x45d384
jl 0x45d377
cmp dword [ebp - 0xc], 0
jae 0x45d384
mov dword [ebp + 0x40], 1
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.004059e1
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x45d3aa
cmp cx, 0x69
jne 0x45d3bf
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], ecx
jne 0x45d3c9
jmp 0x45d3c5
mov ecx, dword [ebp - 0xd8]
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x45da38
jg 0x45d3df
cmp dword [ebp - 0x34], eax
jb 0x45da38
cmp dword [ebp - 0x28], eax
jl 0x45da38
jg 0x45d3f3
cmp dword [ebp - 0x2c], eax
jb 0x45da38
cmp dword [ebp - 8], eax
jl 0x45da38
jg 0x45d407
cmp dword [ebp - 0xc], eax
jbe 0x45da38
cmp dword [ebp - 0x28], ebx
jg 0x45da38
jl 0x45d41b
cmp dword [ebp - 0x2c], esi
ja 0x45da38
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x30], eax
jg 0x45da38
jl 0x45d435
cmp dword [ebp - 0x34], edi
ja 0x45da38
cmp dword [ebp + 0x40], 0
jne 0x45d481
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x45d455
jg 0x45d451
cmp edi, esi
jbe 0x45d455
mov edi, esi
mov eax, ebx
cmp dword [ebp - 8], eax
jl 0x45d467
jg 0x45d461
cmp dword [ebp - 0xc], edi
jbe 0x45d467
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
test cl, 0x20
je 0x45d481
push 0
push 2
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004acfc0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jl 0x45d54d
jg 0x45d497
cmp dword [ebp - 0xc], 0
jbe 0x45d54d
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp + 0x60]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x34]
add ecx, edx
mov edx, dword [ebp + 8]
cmp dx, 0x73
jne 0x45d4d4
cmp dword [ebp + 0x40], 0
je 0x45d4c7
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpA]
jmp 0x45d54a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.shlwapi.dll_StrCmpNA]
jmp 0x45d54a
cmp dx, 0x53
jne 0x45d4f7
cmp dword [ebp + 0x40], 0
je 0x45d4ea
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpW]
jmp 0x45d54a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.shlwapi.dll_StrCmpNW]
jmp 0x45d54a
cmp dx, 0x69
jne 0x45d51a
cmp dword [ebp + 0x40], 0
je 0x45d50d
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x45d54a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.shlwapi.dll_StrCmpNIA]
jmp 0x45d54a
cmp dx, 0x49
jne 0x45d53d
cmp dword [ebp + 0x40], 0
je 0x45d530
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiW]
jmp 0x45d54a
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.shlwapi.dll_StrCmpNIW]
jmp 0x45d54a
push dword [ebp - 0xc]
push ecx
push eax
call fcn.0043e4f6
add esp, 0xc
mov dword [ebp + 0x38], eax
movsx eax, word [ebp + 0x38]
push eax
push 0x4c023c
jmp 0x45d199
cmp ecx, 1
jne 0x45d604
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004ad070
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe0], edx
call fcn.004448de
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 0x45d5b0
jl 0x45d5a9
cmp esi, ebx
jae 0x45d5b0
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x45d5c5
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jl 0x45d5c5
jg 0x45d5c0
cmp esi, edi
jbe 0x45d5c5
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.004acfc0
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444a55
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 0x45d78d
cmp ecx, 2
jne 0x45d65c
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xb4], ebx
call fcn.00444a55
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4dabe4]
mov esi, eax
cmp esi, edi
jge 0x45d635
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00444a55
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 0x45d78d
cmp ecx, 0x20
jne 0x45e286
mov ecx, dword [edi]
mov dword [ebp + 0x60], ecx
mov esi, dword [eax]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0xc0], eax
mov byte [ebp + 0x73], 1
xor ebx, ebx
jmp 0x45d78d
cmp byte [ebp + 0x67], 0
je 0x45d6af
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x45d6af
xor ecx, ecx
mov cl, byte [ebp - 0xa4]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0044dfe2
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0045be04
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x98]
dec eax
cmp eax, edi
jl 0x45d6d9
lea edi, [eax + 1]
mov ecx, dword [ebp - 0x10]
push 0
push 0
lea eax, [ebp + 0x3c]
push eax
push dword [ebp + 0x60]
call fcn.004549e1
dec edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x45d6bd
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x45d700
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045b4b3
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 0x45dc4b
jl 0x45d71f
cmp dword [ebp + 0x1c], edi
ja 0x45dc4b
cmp dword [ebp + 0x54], edi
jg 0x45df8e
jl 0x45d733
cmp dword [ebp + 0x50], edi
ja 0x45df8e
cmp byte [ebp + 0x4b], 0
je 0x45d77d
cmp ebx, edi
jl 0x45dca3
jg 0x45d74b
cmp esi, edi
jbe 0x45dca3
mov edi, 0x4dbd30
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.00410c6f
test eax, eax
mov dword [ebp + 8], eax
jne 0x45e16d
push edi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45d78d
cmp byte [ebp + 0x37], 0
je 0x45d78d
cmp byte [ebp + 0x2b], 0
je 0x45e24c
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 8], eax
je 0x45d7c5
cmp byte [ebp + 0x7c], al
jne 0x45d7c5
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x45d7c5
cmp byte [ebp + 0x73], al
jne 0x45d7c5
cmp dword [ebp - 0x58], eax
jge 0x45d7c5
cmp byte [ebp + 0x37], al
jne 0x45d7c5
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.DLL_SetEnvironmentVariableW]
jmp 0x45d9cf
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410c6f
mov edi, eax
test edi, edi
mov dword [ebp - 0xb4], edi
jne 0x45d843
cmp dword [ebp - 0x58], eax
jge 0x45d837
cmp byte [ebp + 0x73], al
je 0x45d7f7
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
jmp 0x45d7ff
mov ecx, esi
mov dword [ebp - 0xd8], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4bfa2c
jne 0x45d80d
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.00414f99
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x45d833
test edi, edi
je 0x45d837
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044e03e
test edi, edi
jne 0x45d843
mov dword [ebp + 8], 1
jmp 0x45d9cf
cmp dword [ebp - 0x58], 0
jl 0x45d955
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 0x45d873
jb 0x45d86b
cmp dword [ebp - 0x3c], eax
ja 0x45d873
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x45d879
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 0x45d9cf
jb 0x45d89c
cmp dword [ebp - 0x60], esi
jae 0x45d9cf
cmp dword [ebp - 0x38], 0
ja 0x45d8ac
cmp dword [ebp - 0x3c], 0
jbe 0x45d9cf
cmp edx, 2
jb 0x45d944
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x45d9cf
ja 0x45d8cb
cmp dword [ebp - 0x3c], edx
jb 0x45d9cf
cmp edx, 2
jne 0x45d8f9
cmp edi, ecx
ja 0x45d9cf
mov eax, dword [ebp - 4]
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 0x45d9cf
cmp edx, 4
jne 0x45d916
cmp edi, ecx
ja 0x45d9cf
mov eax, dword [ebp - 4]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45d9cf
cmp edx, 8
jne 0x45d944
cmp edi, ecx
ja 0x45d9cf
mov eax, dword [ebp - 4]
sub ecx, edi
mov dword [edi], eax
mov eax, dword [ebp]
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 0x45d9cf
push dword [ebp - 0x3c]
push dword [ebp - 4]
push edi
call fcn.004acf60
add esp, 0xc
jmp 0x45d9cf
cmp byte [ebp + 0x37], 0
jne 0x45d9cf
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x45d994
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45d98c
cmp byte [ebp + 0x73], 0
je 0x45d97c
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ebp + 0x60], eax
push ebx
push esi
push dword [ebp + 0x60]
push edi
call fcn.0043ec56
add esp, 0x10
jmp 0x45d9cf
test al, al
je 0x45d994
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x45d9c0
mov ecx, dword [edi + 0x10]
mov eax, dword [ebp - 0xc0]
mov dword [eax], ecx
mov ecx, dword [edi + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 4], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], ebx
jmp 0x45d9cf
test ecx, ecx
je 0x45d9cf
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402e9b
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
cmp dword [ebp - 0x68], 0
jle 0x45e2bf
mov esi, dword [ebp - 0xd4]
push dword [ebp - 0x74]
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xc8]
dec dword [ebp - 0x68]
push eax
mov dword [ebp + 0x4c], eax
call fcn.00441567
push dword [ebp - 0x70]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xcc]
push esi
call fcn.00441567
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x74], eax
add esp, 0x18
add dword [ebp - 0x70], eax
jmp 0x45cc85
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45da68
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45e2da
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
cmp eax, esi
jmp 0x45da5f
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4bfa2c
push dword [ebp + 0x4c]
call fcn.00414f99
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x45dac4
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.0043e48d
jmp 0x45e286
mov eax, dword [ebp - 0x6c]
mov si, word [eax]
neg si
lea ecx, [ebp + 0x58]
sbb esi, esi
and esi, 0x7ff8ffa9
add esi, 0x80070057
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45e2da
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45e2da
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 + 0x20], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 0x24]
push eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp + 0x1c], ecx
call fcn.004059e1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.004059e1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.004059e1
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x45da38
jg 0x45db91
cmp dword [ebp - 0x34], 0
jb 0x45da38
cmp dword [ebp - 0x28], 0
jl 0x45da38
jg 0x45dba7
cmp dword [ebp - 0x2c], 0
jbe 0x45da38
cmp dword [ebp - 0x30], ebx
jg 0x45da38
jl 0x45dbbb
cmp dword [ebp - 0x34], esi
ja 0x45da38
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x20]
jg 0x45da38
mov ecx, dword [ebp - 0x4c]
jl 0x45dbd5
cmp ecx, dword [ebp + 0x1c]
ja 0x45da38
test eax, eax
jg 0x45dbe3
jl 0x45dbdf
test ecx, ecx
jae 0x45dbe3
xor ecx, ecx
xor eax, eax
sub esi, dword [ebp - 0x34]
sbb ebx, dword [ebp - 0x30]
sub dword [ebp + 0x1c], ecx
sbb dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x45dc02
jg 0x45dbfd
cmp dword [ebp - 0x2c], esi
jbe 0x45dc02
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x45dc19
jg 0x45dc11
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x1c]
jbe 0x45dc1c
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x45dc1c
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x45e286
jg 0x45dc2e
test edx, edx
jbe 0x45e286
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.00414356
add esp, 0xc
jmp 0x45e286
cmp dword [ebp + 0x1c], 0x2a
jne 0x45dc59
cmp eax, edi
je 0x45df9c
cmp dword [ebp - 0x8c], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb4], eax
jle 0x45dc74
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.00444a10
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.0043970c
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45dccf
lea ecx, [ebp + 0x7c]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
cmp eax, edi
jmp 0x45e2ad
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x45dce1
add dword [ebp + 0x14], 2
mov bl, byte [ebp + 0x50]
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x14]
push eax
mov dword [ebp - 4], edi
mov dword [ebp], edi
call fcn.00451418
add esp, 0xc
test bl, bl
je 0x45dd15
push dword [ebp]
movsx eax, bl
push dword [ebp - 4]
cdq
push edx
push eax
call fcn.004ad070
mov dword [ebp - 4], eax
mov dword [ebp], edx
mov eax, dword [ebp - 4]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cdq
mov ebx, eax
add ebx, dword [ebp + 0x50]
mov eax, dword [ebp - 0x64]
mov esi, edx
adc esi, dword [ebp + 0x54]
xor edi, edi
cmp eax, edi
mov word [ebp - 0x1fc], di
mov dword [ebp - 4], edi
mov dword [ebp], edi
jle 0x45dd46
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.004148c8
test al, al
je 0x45dd7e
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.00440edc
mov edi, dword [ebp + 0x78]
mov eax, 0x7fffffff
sub eax, edi
cdq
pop ecx
pop ecx
mov dword [ebp - 4], eax
mov dword [ebp], edx
jmp 0x45dd9f
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00410c6f
test eax, eax
je 0x45dd9f
mov ecx, dword [eax + 0x10]
and dword [ebp], 0
mov edi, dword [eax + 4]
mov dword [ebp - 4], ecx
cmp dword [ebp], esi
mov dword [ebp + 0x78], 1
jl 0x45df3c
jg 0x45ddba
cmp dword [ebp - 4], ebx
jb 0x45df3c
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45ddf4
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.00444c41
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45ddcc
push dword [ebp - 0xb4]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.004143a0
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x78], edx
je 0x45de34
fld dword [ebp - 0x114]
push 0x4c8d88
push ecx
lea eax, [ebp - 0x1fc]
fstp dword [esp]
push eax
call fcn.0049a8fe
add esp, 0xc
jmp 0x45df3c
cmp dword [ebp - 0x88], edx
je 0x45de5d
fld qword [ebp - 0x114]
push 0x4c8318
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049a927
jmp 0x45df39
cmp dword [ebp - 0x7c], edx
je 0x45de83
fld qword [ebp - 0x114]
push 0x4c8318
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.0049a927
jmp 0x45df39
cmp dword [ebp + 0x1c], 0x64
jne 0x45de9c
xor eax, eax
cmp eax, edx
jne 0x45de9c
push dword [ebp - 0x114]
push str.0x_p
jmp 0x45dee1
mov ecx, dword [ebp - 0xac]
cmp ecx, 1
jne 0x45deb7
xor eax, eax
cmp eax, edx
jne 0x45deb7
movsx eax, byte [ebp - 0x114]
push eax
jmp 0x45dedc
cmp ecx, 2
jne 0x45decb
xor eax, eax
cmp eax, edx
jne 0x45decb
movsx eax, word [ebp - 0x114]
jmp 0x45deb4
cmp ecx, 4
jne 0x45def3
xor eax, eax
cmp eax, edx
jne 0x45def3
push dword [ebp - 0x114]
push 0x4c023c
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.user32.dll_wsprintfW]
jmp 0x45de2c
cmp ecx, 8
jne 0x45df1e
xor eax, eax
cmp eax, edx
jne 0x45df1e
push dword [ebp - 0x110]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x114]
push str._I64d
push eax
call dword [sym.imp.user32.dll_wsprintfW]
jmp 0x45df39
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push eax
call fcn.0049a87f
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp + 0x7c]
call fcn.0044414b
lea ecx, [ebp + 0x7c]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45df86
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x45e2da
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x1c], edi
jne 0x45dfc8
cmp dword [ebp + 0x54], edi
jne 0x45dfc8
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
cmp eax, edi
jmp 0x45da5f
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x45e020
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.004a3a6c
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x45dff8
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.00410c6f
cmp si, di
je 0x45e010
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x45e020
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x78], edi
je 0x45e045
cmp byte [ebp + 0x7f], 0
je 0x45e03a
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00447b18
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x114]
jmp 0x45e0a0
cmp dword [ebp - 0x88], edi
je 0x45e06d
cmp byte [ebp + 0x7f], 0
je 0x45e062
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00447b18
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x114]
jmp 0x45e0a0
cmp dword [ebp - 0x7c], edi
jne 0x45e04d
cmp byte [ebp + 0x7f], 0
je 0x45e090
push dword [ebp + 0xc]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00451418
add esp, 0xc
jmp 0x45e0a0
mov eax, dword [ebp - 0x1c]
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
mov eax, dword [ebp + 0x70]
cmp word [eax], di
je 0x45e0fc
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x45e0bf
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.00451418
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x45e0f6
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004ad070
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x54]
add dword [ebp - 0x20], eax
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410c6f
mov edi, eax
test edi, edi
jne 0x45d208
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4bfa2c
push dword [ebp + 0x4c]
call fcn.00414f99
mov edi, eax
test edi, edi
jne 0x45d208
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45e165
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45e2da
mov edi, dword [ebp + 8]
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 0x45e1f6
jl 0x45e18e
cmp dword [ebp - 0x60], ecx
jae 0x45e1f6
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.004acfc0
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe0], edx
call fcn.00444a55
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 0x45e1fc
cmp byte [ebp + 0x7f], 0
je 0x45e1ef
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.004143a0
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x45e223
mov byte [ebp + 0x7f], 0
jmp 0x45e195
cmp byte [ebp + 0x4b], 2
jne 0x45e230
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x45e219
push dword [ebp + 0x78]
push eax
call fcn.004143a0
jmp 0x45e220
push edi
push eax
call fcn.00414356
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.004143a0
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4dbd30
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45e286
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410c6f
mov esi, eax
cmp esi, edi
je 0x45e286
test byte [esi + 0x17], 0xc0
je 0x45e273
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45e286
push 0x4bfa2c
lea ecx, [esi + 4]
call fcn.0044dfe2
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x44]
call fcn.0043e48d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45cb98
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x45cb98
lea ecx, [ebp + 0x5c]
call fcn.0043e48d
mov eax, 0x4dbd30
test eax, eax
je 0x45e2d7
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.0043e48d
pop edi
lea ecx, [ebp - 0xb0]
call fcn.0043e48d
lea ecx, [ebp - 0x94]
call fcn.0043e48d
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10