Function at 0x45acea
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.004441c9
lea eax, [ebp + 0x14]
push eax
call fcn.0043dae7
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45ad81
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45ad79
lea ecx, [ebp - 0xb0]
call fcn.00443f5b
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45ada5
cmp cx, 0x3d
je 0x45adad
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45ad9a
mov dword [ebp + 0x60], 0x4bca0c
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x37], 0
je 0x45adc6
mov byte [ebp + 0x37], 1
jmp 0x45adce
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.004108af
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45ae1e
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x80], ecx
jmp 0x45adf4
cmp ax, 0x7e
je 0x45adff
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45adec
cmp word [edx], 0x7e
je 0x45ae0f
mov esi, 0x80070057
jmp 0x45d079
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45ae1e
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 0x45b8de
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x45b8de
mov eax, edi
call fcn.0043daaf
test al, al
jne 0x45b8de
cmp di, 0x2e
je 0x45b8d3
cmp di, 0x24
je 0x45b8d3
cmp di, 0x25
je 0x45b8d3
cmp di, 0x2a
jne 0x45ae85
or byte [ebp + 0x67], 4
jmp 0x45b8d3
push 0x7e
pop ecx
cmp di, cx
jne 0x45aeda
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45ae9e
or byte [ebp + 0x67], 2
jmp 0x45b8d1
cmp di, cx
jne 0x45aeda
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45aeb5
or byte [ebp + 0x67], 8
jmp 0x45b8d1
cmp di, cx
jne 0x45aeda
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45aecc
or byte [ebp + 0x67], 0xa
jmp 0x45b8d1
cmp di, cx
jne 0x45aeda
or byte [ebp + 0x67], 1
jmp 0x45b8d3
cmp di, 0x3c
jne 0x45aee9
mov byte [ebp + 0x4b], 1
jmp 0x45b8d3
cmp di, 0x3e
jne 0x45aef8
mov byte [ebp + 0x4b], 2
jmp 0x45b8d3
push 4
push esi
push str._std
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45af1e
add esi, 6
mov dword [ebp - 0xa4], 0x80
jmp 0x45b8d3
push 4
push esi
push str._env
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45af44
add esi, 6
mov dword [ebp - 0xa4], 0x40
jmp 0x45b8d3
push 4
push esi
push str._raw
call fcn.0043eeea
add esp, 0xc
test al, al
jne 0x45b309
push 4
push esi
push str._def
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45af7c
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45b8d3
push 4
push esi
push str._tom
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45af9f
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45b8d3
push 4
push esi
push str._tow
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45afc2
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45b8d3
push 5
push esi
push str._copy
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45afe5
add esi, 8
mov dword [ebp + 0x30], 4
jmp 0x45b8d3
push 4
push esi
push str._cmp
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b008
add esi, 8
mov dword [ebp + 0x30], pe_nt_image_headers32
jmp 0x45b8d3
push 5
push esi
push str._addr
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b029
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45b8d3
push 0xb
push esi
push str._mkfixdummy
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b04c
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45b8d3
push 8
push esi
push str._mkdummy
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b06f
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45b8d3
push 5
push esi
push str._make
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b092
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x45b8d3
push 5
push esi
push str._swap
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b0b5
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x45b8d3
push 5
push esi
push str._zero
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b0d4
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x45b8d3
push 4
push esi
push str._ret
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b125
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45b100
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00443b15
test al, al
je 0x45b11e
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004503bc
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45b8d3
push 4
push esi
push str._get
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b162
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x70], esi
jne 0x45b151
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00443b15
test al, al
je 0x45b11e
lea eax, [ebp + 0x40]
jmp 0x45b10f
push 3
push esi
push 0x4c5c68
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b182
add esi, 4
mov byte [ebp + 7], 1
jmp 0x45b8d3
push 2
push esi
push 0x4c5c64
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b1b1
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x98]
jmp 0x45b10f
push 2
push esi
push 0x4c5c60
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b238
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.0040565a
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0040565a
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x70], esi
call fcn.004503bc
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004503bc
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45b21d
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 0x45b8d3
jmp 0x45b11e
cmp di, 0x2d
jne 0x45b4cd
inc esi
push 1
inc esi
push esi
push 0x4c1270
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b2e9
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 0x45b296
mov eax, ecx
call fcn.0043daaf
test al, al
jne 0x45b28e
cmp cx, 0x3a
je 0x45b28e
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45b273
cmp word [esi], bx
je 0x45b296
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.00450761
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45b935
mov esi, dword [ebp - 0xbc]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45b2db
mov esi, 0x4c5c58
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45b2e9
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b311
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x45b8d3
push 5
push esi
push str.wchar
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b337
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x45b8d3
push 5
push esi
push str.short
call fcn.0043eeea
add esp, 0xc
test al, al
jne 0x45b325
push 3
push esi
push 0x4c5194
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b36c
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x45b8d3
push 6
push esi
push str.intptr
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b38e
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x45b8d3
push 5
push esi
push str.intpe
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b3b0
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x45b8d3
push 5
push esi
push str.float
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b3cf
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
jmp 0x45b32c
push 6
push esi
push str.double
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b3f1
push 8
pop eax
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
jmp 0x45b383
push 7
push esi
push str.ldouble
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b419
push 8
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x45b8d3
push 5
push esi
push str.int64
call fcn.0043eeea
add esp, 0xc
test al, al
push 8
jne 0x45b4c2
push esi
push str.longlong
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b454
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x45b3a8
push edi
push esi
push str.long
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b46f
mov dword [ebp + 0x50], edi
jmp 0x45b306
push 6
push esi
push str.intsys
call fcn.0043eeea
add esp, 0xc
test al, al
jne 0x45b837
push 3
push esi
push 0x4c4e8c
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b8d3
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x45b4c0
cmp ax, 0x41
jb 0x45b4c0
cmp ax, 0x5a
jbe 0x45b8d3
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x45b3a8
cmp di, 0x3f
jne 0x45b8d3
inc esi
push 1
inc esi
push esi
push 0x4c1270
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b580
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 0x45b52d
mov eax, ecx
call fcn.0043daaf
test al, al
jne 0x45b525
cmp cx, 0x3a
je 0x45b522
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45b505
jmp 0x45b525
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x45b52d
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.00450761
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45b935
mov esi, dword [ebp - 0xd0]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45b572
mov esi, 0x4c5c58
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45b580
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b5dc
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 0x45b5b4
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45b5c6
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45b8c4
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45b8c2
push 5
push esi
push str.wchar
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b5fb
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x1c], edx
jmp 0x45b61a
push 5
push esi
push str.short
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b657
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 0x45b62f
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45b641
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45b8c4
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45b8c2
push 3
push esi
push 0x4c5194
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b692
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 0x45b689
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x45b6d7
push 6
push esi
push str.intptr
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b6e2
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 0x45b6c1
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45b6d3
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45b8c4
jmp 0x45b8c2
push 5
push esi
push str.float
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b70a
add esi, 8
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
jmp 0x45b8d3
push 6
push esi
push str.double
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b738
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 0x45b8d3
push 7
push esi
push str.ldouble
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b757
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x45b72a
push 5
push esi
push str.int64
call fcn.0043eeea
add esp, 0xc
test al, al
push 8
je 0x45b772
pop edx
add esi, edx
jmp 0x45b78a
push esi
push str.longlong
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b7c3
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 0x45b79b
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45b7ad
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45b8c4
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45b8c2
push edi
push esi
push str.long
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b7fc
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 0x45b8a3
lea esi, [eax - 2]
jmp 0x45b8a3
push 5
push esi
push str.intpe
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b815
add esi, 8
jmp 0x45b892
push 6
push esi
push str.intsys
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b879
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], edi
je 0x45b837
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4d7c39], 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 0x45b8d3
cmp byte [0x4d7c39], 3
mov esi, eax
je 0x45b870
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45b8d3
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45b8d3
push 3
push esi
push 0x4c4e8c
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x45b8d3
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 0x45b8a3
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45b8b5
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45b8c4
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45b8d3
add dword [ebp + 0x2c], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 0x10], ebx
jne 0x45ae3b
lea ecx, [ebp - 0x6c]
call fcn.00443f5b
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.00438db7
push 0x3b
push 0x2c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.00438db7
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x4c], eax
je 0x45b93f
cmp word [eax], bx
jne 0x45b93f
mov eax, dword [ebp - 0x6c]
cmp word [eax], bx
jne 0x45b93f
xor esi, esi
jmp 0x45d070
mov esi, 0x80070057
jmp 0x45d078
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 0x45b980
dec dword [ebp - 0x24]
js 0x45b977
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45b96e
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45b980
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x40]
cmp eax, ebx
jle 0x45b994
dec eax
js 0x45b994
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x45b98b
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x37], 0
je 0x45b9a1
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x30], ebx
push 0x4d8d24
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 0x45ba1b
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.00443fa0
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 0x45c78d
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.00443f5b
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 0x45bb35
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045ac94
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 0x45c523
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045ac94
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x45bb18
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.0045ac94
add esp, 0xc
test eax, eax
jle 0x45bb18
cmp dword [ebp + 0x40], edi
jne 0x45bb21
cmp dword [ebp - 0x40], edi
je 0x45c523
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004ac8b0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x40], edi
je 0x45c523
cmp dword [ebp - 0x40], edi
jne 0x45c523
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
jmp 0x45c523
cmp byte [ebp + 7], 0
je 0x45bb53
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.00447899
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x45c40f
test byte [ebp + 0x30], 0x80
je 0x45be7e
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 0x45bc33
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x45bbbd
cmp ax, 0x2c
je 0x45bbbd
cmp ax, 0x3a
je 0x45bbbd
cmp ax, 0x40
je 0x45bbbd
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45bb98
mov ax, word [esi]
cmp ax, cx
je 0x45bbcd
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45bc0a
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
je 0x45bc0a
cmp ax, 0x3b
je 0x45bbfd
cmp ax, 0x2c
je 0x45bbfd
cmp ax, 0x3a
je 0x45bbfd
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45bbde
cmp word [esi], cx
je 0x45bc0a
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.00410728
test eax, eax
je 0x45c7ce
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x45bd15
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45bd64
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45bc6c
cmp ax, 0x3b
je 0x45bc77
cmp ax, 0x2c
je 0x45bc77
cmp ax, 0x3a
je 0x45bc77
cmp ax, 0x40
je 0x45bc77
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45bc52
mov ax, word [esi]
cmp ax, di
je 0x45bc87
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45bcc4
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
je 0x45bcc4
cmp ax, 0x3b
je 0x45bcb7
cmp ax, 0x2c
je 0x45bcb7
cmp ax, 0x3a
je 0x45bcb7
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45bc98
cmp word [esi], di
je 0x45bcc4
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [ecx], di
je 0x45cd32
mov eax, 0x4bca0c
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0044097f
cmp eax, edi
je 0x45cd32
cmp dword [eax + 4], 0x14
jne 0x45cd32
cmp dword [eax + 0x48], 0xfffffffe
jne 0x45cd32
cmp dword [eax + 0x50], edi
jle 0x45cd32
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 0x45bd87
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0045ac94
add esp, 0xc
test eax, eax
jle 0x45bd87
cmp dword [ebp - 0x9c], 0
jl 0x45bd87
mov eax, dword [ebp - 0xa0]
jg 0x45bd51
test eax, eax
jbe 0x45bd87
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x9c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x45bd87
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045ac94
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 0x45bd9a
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x13]
cmp byte [ebp + 0x13], 0
je 0x45bdb1
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.0045ac94
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x45bdd8
mov dword [ebp + 0x60], 0x4bd7b2
jmp 0x45c40f
cmp eax, 1
jge 0x45be0e
cmp byte [ebp + 0x2a], 0
jne 0x45be29
cmp byte [ebp + 0x13], 0
je 0x45bdf8
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x45be2c
cmp byte [ebp + 6], 0
jg 0x45be29
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x45be2c
cmp byte [ebp + 0x2a], 0
je 0x45be29
cmp dword [ebp - 0x14], edi
jl 0x45be29
jg 0x45be22
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jbe 0x45be2c
mov eax, ebx
mov dword [ebp - 0x14], edi
jmp 0x45be2c
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x45c808
jg 0x45be3f
cmp eax, esi
jb 0x45c808
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x45c523
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.00410728
test eax, eax
je 0x45c831
test byte [eax + 0x17], 0xc0
je 0x45c845
and dword [eax + 4], ebx
jmp 0x45c845
xor edi, edi
cmp dword [ebp + 0x30], edi
je 0x45c416
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x40], edi
xor ecx, ecx
jmp 0x45bead
cmp cx, 0x2c
je 0x45beba
cmp cx, 0x3b
je 0x45beba
cmp cx, 0x3a
je 0x45beba
cmp cx, 0x7c
je 0x45beba
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x45be93
jmp 0x45bec9
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.00438db7
mov ecx, dword [ebp - 0x10]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.00410728
cmp eax, edi
je 0x45cd32
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 0x45bf58
push dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.004465af
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x45c87a
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 0x45c40f
cmp ecx, 4
jne 0x45c08b
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410728
cmp word [ebp + 0x40], 0
mov edi, eax
jne 0x45c8ca
test edi, edi
je 0x45c523
test byte [edi + 0x17], 0xc0
je 0x45c523
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 0x45bfb4
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 0x45bfe1
cmp ebx, edx
jl 0x45bfe1
jg 0x45c7ce
cmp esi, ecx
ja 0x45c7ce
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe0], ecx
js 0x45c041
jg 0x45bff7
test eax, eax
jbe 0x45c041
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004aa080
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe0], edx
mov dword [ebp + 0x7c], eax
call fcn.00443fa0
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.004aa020
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 0x45c07a
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.0044418c
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45c052
push dword [ebp + 0x78]
push dword [ebp + 8]
push edi
call fcn.00413de4
jmp 0x45c9d9
cmp ecx, 0x100
jne 0x45c2f2
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410728
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.0040567a
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040567a
and dword [ebp + 0x40], 0
add esp, 0x10
cmp dword [ebp - 8], 0
jg 0x45c11a
jl 0x45c10d
cmp dword [ebp - 0xc], 0
jae 0x45c11a
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.0040567a
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x45c140
cmp cx, 0x69
jne 0x45c155
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], ecx
jne 0x45c15f
jmp 0x45c15b
mov ecx, dword [ebp - 0xd8]
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x45c7ce
jg 0x45c175
cmp dword [ebp - 0x34], eax
jb 0x45c7ce
cmp dword [ebp - 0x28], eax
jl 0x45c7ce
jg 0x45c189
cmp dword [ebp - 0x2c], eax
jb 0x45c7ce
cmp dword [ebp - 8], eax
jl 0x45c7ce
jg 0x45c19d
cmp dword [ebp - 0xc], eax
jbe 0x45c7ce
cmp dword [ebp - 0x28], ebx
jg 0x45c7ce
jl 0x45c1b1
cmp dword [ebp - 0x2c], esi
ja 0x45c7ce
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x30], eax
jg 0x45c7ce
jl 0x45c1cb
cmp dword [ebp - 0x34], edi
ja 0x45c7ce
cmp dword [ebp + 0x40], 0
jne 0x45c217
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x45c1eb
jg 0x45c1e7
cmp edi, esi
jbe 0x45c1eb
mov edi, esi
mov eax, ebx
cmp dword [ebp - 8], eax
jl 0x45c1fd
jg 0x45c1f7
cmp dword [ebp - 0xc], edi
jbe 0x45c1fd
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
test cl, 0x20
je 0x45c217
push 0
push 2
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004aa080
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jl 0x45c2e3
jg 0x45c22d
cmp dword [ebp - 0xc], 0
jbe 0x45c2e3
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 0x45c26a
cmp dword [ebp + 0x40], 0
je 0x45c25d
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x45c2e0
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x45c2e0
cmp dx, 0x53
jne 0x45c28d
cmp dword [ebp + 0x40], 0
je 0x45c280
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x45c2e0
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x45c2e0
cmp dx, 0x69
jne 0x45c2b0
cmp dword [ebp + 0x40], 0
je 0x45c2a3
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x45c2e0
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x45c2e0
cmp dx, 0x49
jne 0x45c2d3
cmp dword [ebp + 0x40], 0
je 0x45c2c6
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x45c2e0
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x45c2e0
push dword [ebp - 0xc]
push ecx
push eax
call fcn.0043dbb8
add esp, 0xc
mov dword [ebp + 0x38], eax
movsx eax, word [ebp + 0x38]
push eax
push 0x4bd214
jmp 0x45bf2f
cmp ecx, 1
jne 0x45c39a
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004aa130
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe0], edx
call fcn.00443e29
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 0x45c346
jl 0x45c33f
cmp esi, ebx
jae 0x45c346
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x45c35b
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jl 0x45c35b
jg 0x45c356
cmp esi, edi
jbe 0x45c35b
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.004aa080
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00443fa0
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 0x45c523
cmp ecx, 2
jne 0x45c3f2
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xb4], ebx
call fcn.00443fa0
push esi
push dword [ebp + 0x58]
xor edi, edi
push esi
push dword [ebp + 0x60]
push edi
push edi
call dword [0x4d7be4]
mov esi, eax
cmp esi, edi
jge 0x45c3cb
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.00443fa0
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 0x45c523
cmp ecx, 0x20
jne 0x45d01c
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 0x45c523
cmp byte [ebp + 0x67], 0
je 0x45c445
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x45c445
xor ecx, ecx
mov cl, byte [ebp - 0xa4]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0044cddc
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0045ab9a
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x98]
dec eax
cmp eax, edi
jl 0x45c46f
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.004537c3
dec edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x45c453
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x45c496
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045a249
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 0x45c9e1
jl 0x45c4b5
cmp dword [ebp + 0x1c], edi
ja 0x45c9e1
cmp dword [ebp + 0x54], edi
jg 0x45cd24
jl 0x45c4c9
cmp dword [ebp + 0x50], edi
ja 0x45cd24
cmp byte [ebp + 0x4b], 0
je 0x45c513
cmp ebx, edi
jl 0x45ca39
jg 0x45c4e1
cmp esi, edi
jbe 0x45ca39
mov edi, 0x4d8d24
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.00410728
test eax, eax
mov dword [ebp + 8], eax
jne 0x45cf03
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45c523
cmp byte [ebp + 0x37], 0
je 0x45c523
cmp byte [ebp + 0x2b], 0
je 0x45cfe2
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 8], eax
je 0x45c55b
cmp byte [ebp + 0x7c], al
jne 0x45c55b
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x45c55b
cmp byte [ebp + 0x73], al
jne 0x45c55b
cmp dword [ebp - 0x58], eax
jge 0x45c55b
cmp byte [ebp + 0x37], al
jne 0x45c55b
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x45c765
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410728
mov edi, eax
test edi, edi
mov dword [ebp - 0xb4], edi
jne 0x45c5d9
cmp dword [ebp - 0x58], eax
jge 0x45c5cd
cmp byte [ebp + 0x73], al
je 0x45c58d
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
jmp 0x45c595
mov ecx, esi
mov dword [ebp - 0xd8], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4bca0c
jne 0x45c5a3
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.00414a17
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x45c5c9
test edi, edi
je 0x45c5cd
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044ce38
test edi, edi
jne 0x45c5d9
mov dword [ebp + 8], 1
jmp 0x45c765
cmp dword [ebp - 0x58], 0
jl 0x45c6eb
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 0x45c609
jb 0x45c601
cmp dword [ebp - 0x3c], eax
ja 0x45c609
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x45c60f
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 0x45c765
jb 0x45c632
cmp dword [ebp - 0x60], esi
jae 0x45c765
cmp dword [ebp - 0x38], 0
ja 0x45c642
cmp dword [ebp - 0x3c], 0
jbe 0x45c765
cmp edx, 2
jb 0x45c6da
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x45c765
ja 0x45c661
cmp dword [ebp - 0x3c], edx
jb 0x45c765
cmp edx, 2
jne 0x45c68f
cmp edi, ecx
ja 0x45c765
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 0x45c765
cmp edx, 4
jne 0x45c6ac
cmp edi, ecx
ja 0x45c765
mov eax, dword [ebp - 4]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45c765
cmp edx, 8
jne 0x45c6da
cmp edi, ecx
ja 0x45c765
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 0x45c765
push dword [ebp - 0x3c]
push dword [ebp - 4]
push edi
call fcn.004aa020
add esp, 0xc
jmp 0x45c765
cmp byte [ebp + 0x37], 0
jne 0x45c765
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x45c72a
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45c722
cmp byte [ebp + 0x73], 0
je 0x45c712
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.0043e2d9
add esp, 0x10
jmp 0x45c765
test al, al
je 0x45c72a
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x45c756
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 0x45c765
test ecx, ecx
je 0x45c765
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402e63
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
cmp dword [ebp - 0x68], 0
jle 0x45d055
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.00440b7a
push dword [ebp - 0x70]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xcc]
push esi
call fcn.00440b7a
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x74], eax
add esp, 0x18
add dword [ebp - 0x70], eax
jmp 0x45ba1b
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45c7fe
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45d070
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
cmp eax, esi
jmp 0x45c7f5
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4bca0c
push dword [ebp + 0x4c]
call fcn.00414a17
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x45c85a
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.0043db4f
jmp 0x45d01c
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.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45d070
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d070
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.0040567a
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040567a
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.0040567a
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x45c7ce
jg 0x45c927
cmp dword [ebp - 0x34], 0
jb 0x45c7ce
cmp dword [ebp - 0x28], 0
jl 0x45c7ce
jg 0x45c93d
cmp dword [ebp - 0x2c], 0
jbe 0x45c7ce
cmp dword [ebp - 0x30], ebx
jg 0x45c7ce
jl 0x45c951
cmp dword [ebp - 0x34], esi
ja 0x45c7ce
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x20]
jg 0x45c7ce
mov ecx, dword [ebp - 0x4c]
jl 0x45c96b
cmp ecx, dword [ebp + 0x1c]
ja 0x45c7ce
test eax, eax
jg 0x45c979
jl 0x45c975
test ecx, ecx
jae 0x45c979
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 0x45c998
jg 0x45c993
cmp dword [ebp - 0x2c], esi
jbe 0x45c998
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x45c9af
jg 0x45c9a7
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x1c]
jbe 0x45c9b2
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x45c9b2
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x45d01c
jg 0x45c9c4
test edx, edx
jbe 0x45d01c
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.00413d9a
add esp, 0xc
jmp 0x45d01c
cmp dword [ebp + 0x1c], 0x2a
jne 0x45c9ef
cmp eax, edi
je 0x45cd32
cmp dword [ebp - 0x8c], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb4], eax
jle 0x45ca0a
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.00443f5b
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.00438db7
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45ca65
lea ecx, [ebp + 0x7c]
call fcn.0043db4f
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
cmp eax, edi
jmp 0x45d043
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x45ca77
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.004501fa
add esp, 0xc
test bl, bl
je 0x45caab
push dword [ebp]
movsx eax, bl
push dword [ebp - 4]
cdq
push edx
push eax
call fcn.004aa130
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 0x45cadc
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.00443b15
test al, al
je 0x45cb14
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.004404ef
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 0x45cb35
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00410728
test eax, eax
je 0x45cb35
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 0x45ccd2
jg 0x45cb50
cmp dword [ebp - 4], ebx
jb 0x45ccd2
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45cb8a
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.0044418c
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45cb62
push dword [ebp - 0xb4]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.00413de4
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x78], edx
je 0x45cbca
fld dword [ebp - 0x114]
push 0x4c5be8
push ecx
lea eax, [ebp - 0x1fc]
fstp dword [esp]
push eax
call fcn.00497eed
add esp, 0xc
jmp 0x45ccd2
cmp dword [ebp - 0x88], edx
je 0x45cbf3
fld qword [ebp - 0x114]
push 0x4c5174
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.00497f16
jmp 0x45cccf
cmp dword [ebp - 0x7c], edx
je 0x45cc19
fld qword [ebp - 0x114]
push 0x4c5174
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.00497f16
jmp 0x45cccf
cmp dword [ebp + 0x1c], 0x64
jne 0x45cc32
xor eax, eax
cmp eax, edx
jne 0x45cc32
push dword [ebp - 0x114]
push str.0x_p
jmp 0x45cc77
mov ecx, dword [ebp - 0xac]
cmp ecx, 1
jne 0x45cc4d
xor eax, eax
cmp eax, edx
jne 0x45cc4d
movsx eax, byte [ebp - 0x114]
push eax
jmp 0x45cc72
cmp ecx, 2
jne 0x45cc61
xor eax, eax
cmp eax, edx
jne 0x45cc61
movsx eax, word [ebp - 0x114]
jmp 0x45cc4a
cmp ecx, 4
jne 0x45cc89
xor eax, eax
cmp eax, edx
jne 0x45cc89
push dword [ebp - 0x114]
push 0x4bd214
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45cbc2
cmp ecx, 8
jne 0x45ccb4
xor eax, eax
cmp eax, edx
jne 0x45ccb4
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 0x45cccf
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push eax
call fcn.00497e6e
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp + 0x7c]
call fcn.00443666
lea ecx, [ebp + 0x7c]
call fcn.0043db4f
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45cd1c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x45d070
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x1c], edi
jne 0x45cd5e
cmp dword [ebp + 0x54], edi
jne 0x45cd5e
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
cmp eax, edi
jmp 0x45c7f5
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x45cdb6
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.004a7e7b
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x45cd8e
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.00410728
cmp si, di
je 0x45cda6
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x45cdb6
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x78], edi
je 0x45cddb
cmp byte [ebp + 0x7f], 0
je 0x45cdd0
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00446ffa
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x114]
jmp 0x45ce36
cmp dword [ebp - 0x88], edi
je 0x45ce03
cmp byte [ebp + 0x7f], 0
je 0x45cdf8
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.00446ffa
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x114]
jmp 0x45ce36
cmp dword [ebp - 0x7c], edi
jne 0x45cde3
cmp byte [ebp + 0x7f], 0
je 0x45ce26
push dword [ebp + 0xc]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004501fa
add esp, 0xc
jmp 0x45ce36
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 0x45ce92
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x45ce55
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.004501fa
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x45ce8c
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004aa130
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.00410728
mov edi, eax
test edi, edi
jne 0x45bf9e
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4bca0c
push dword [ebp + 0x4c]
call fcn.00414a17
mov edi, eax
test edi, edi
jne 0x45bf9e
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45cefb
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45d070
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 0x45cf8c
jl 0x45cf24
cmp dword [ebp - 0x60], ecx
jae 0x45cf8c
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.004aa080
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe0], edx
call fcn.00443fa0
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 0x45cf92
cmp byte [ebp + 0x7f], 0
je 0x45cf85
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.00413de4
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x45cfb9
mov byte [ebp + 0x7f], 0
jmp 0x45cf2b
cmp byte [ebp + 0x4b], 2
jne 0x45cfc6
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x45cfaf
push dword [ebp + 0x78]
push eax
call fcn.00413de4
jmp 0x45cfb6
push edi
push eax
call fcn.00413d9a
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00413de4
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4d8d24
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d01c
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.00410728
mov esi, eax
cmp esi, edi
je 0x45d01c
test byte [esi + 0x17], 0xc0
je 0x45d009
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45d01c
push 0x4bca0c
lea ecx, [esi + 4]
call fcn.0044cddc
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043db4f
lea ecx, [ebp + 0x44]
call fcn.0043db4f
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45b92e
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45b92e
lea ecx, [ebp + 0x5c]
call fcn.0043db4f
mov eax, 0x4d8d24
test eax, eax
je 0x45d06d
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.0043db4f
pop edi
lea ecx, [ebp - 0xb0]
call fcn.0043db4f
lea ecx, [ebp - 0x94]
call fcn.0043db4f
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10