Function at 0x45b40f
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.0044440f
lea eax, [ebp + 0x14]
push eax
call fcn.0043dcd9
mov eax, dword [ebp + 0x14]
pop ecx
jmp 0x45b4a6
inc byte [ebp + 0x7c]
inc eax
inc eax
mov dword [ebp + 0x14], eax
cmp word [eax], 0x26
je 0x45b49e
lea ecx, [ebp - 0xb0]
call fcn.004441a1
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x4c], eax
jmp 0x45b4ca
cmp cx, 0x3d
je 0x45b4d2
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov cx, word [eax]
cmp cx, bx
jne 0x45b4bf
mov dword [ebp + 0x60], 0x4bca2c
cmp word [eax], 0x3d
mov ecx, eax
mov byte [ebp + 0x37], 0
je 0x45b4eb
mov byte [ebp + 0x37], 1
jmp 0x45b4f3
inc eax
inc eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x60], eax
mov word [ecx], bx
push dword [ebp + 0x4c]
call fcn.00410a39
mov edx, dword [ebp + 0x4c]
cmp word [edx], 0x7e
pop ecx
jne 0x45b543
inc edx
inc edx
mov ecx, edx
mov dword [ebp - 0x80], ecx
jmp 0x45b519
cmp ax, 0x7e
je 0x45b524
inc edx
inc edx
mov dword [ebp + 0x4c], edx
mov ax, word [edx]
cmp ax, bx
jne 0x45b511
cmp word [edx], 0x7e
je 0x45b534
mov esi, 0x80070057
jmp 0x45d79e
mov word [edx], bx
add dword [ebp + 0x4c], 2
cmp word [ecx], bx
jne 0x45b543
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 0x45c003
mov dword [ebp - 0x10], esi
mov dword [ebp + 0x5c], ebx
xor edi, edi
mov di, word [esi]
cmp di, bx
je 0x45c003
mov eax, edi
call fcn.0040f4c7
test al, al
jne 0x45c003
cmp di, 0x2e
je 0x45bff8
cmp di, 0x24
je 0x45bff8
cmp di, 0x25
je 0x45bff8
cmp di, 0x2a
jne 0x45b5aa
or byte [ebp + 0x67], 4
jmp 0x45bff8
push 0x7e
pop ecx
cmp di, cx
jne 0x45b5ff
lea eax, [esi + 2]
cmp word [eax], cx
jne 0x45b5c3
or byte [ebp + 0x67], 2
jmp 0x45bff6
cmp di, cx
jne 0x45b5ff
lea eax, [esi + 2]
cmp word [eax], 0x2e
jne 0x45b5da
or byte [ebp + 0x67], 8
jmp 0x45bff6
cmp di, cx
jne 0x45b5ff
lea eax, [esi + 2]
cmp word [eax], 0x2a
jne 0x45b5f1
or byte [ebp + 0x67], 0xa
jmp 0x45bff6
cmp di, cx
jne 0x45b5ff
or byte [ebp + 0x67], 1
jmp 0x45bff8
cmp di, 0x3c
jne 0x45b60e
mov byte [ebp + 0x4b], 1
jmp 0x45bff8
cmp di, 0x3e
jne 0x45b61d
mov byte [ebp + 0x4b], 2
jmp 0x45bff8
push 4
push esi
push str._std
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b643
add esi, 6
mov dword [ebp - 0xa4], 0x80
jmp 0x45bff8
push 4
push esi
push str._env
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b669
add esi, 6
mov dword [ebp - 0xa4], 0x40
jmp 0x45bff8
push 4
push esi
push str._raw
call fcn.0043f11b
add esp, 0xc
test al, al
jne 0x45ba2e
push 4
push esi
push str._def
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b6a1
add esi, 6
add byte [ebp + 0x7c], 2
jmp 0x45bff8
push 4
push esi
push str._tom
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b6c4
add esi, 6
mov dword [ebp + 0x30], 1
jmp 0x45bff8
push 4
push esi
push str._tow
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b6e7
add esi, 6
mov dword [ebp + 0x30], 2
jmp 0x45bff8
push 5
push esi
push str._copy
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b70a
add esi, 8
mov dword [ebp + 0x30], 4
jmp 0x45bff8
push 4
push esi
push str._cmp
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b72d
add esi, 8
mov dword [ebp + 0x30], 0x100
jmp 0x45bff8
push 5
push esi
push str._addr
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b74e
push 8
pop eax
add esi, eax
mov dword [ebp + 0x30], eax
jmp 0x45bff8
push 0xb
push esi
push str._mkfixdummy
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b771
add esi, 0x14
mov dword [ebp + 0x30], 0x83
jmp 0x45bff8
push 8
push esi
push str._mkdummy
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b794
add esi, 0xe
mov dword [ebp + 0x30], 0x81
jmp 0x45bff8
push 5
push esi
push str._make
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b7b7
add esi, 8
mov dword [ebp + 0x30], 0x80
jmp 0x45bff8
push 5
push esi
push str._swap
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b7da
add esi, 8
mov dword [ebp + 0x30], 0x20
jmp 0x45bff8
push 5
push esi
push str._zero
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b7f9
add esi, 8
mov dword [ebp - 0x58], ebx
jmp 0x45bff8
push 4
push esi
push str._ret
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b84a
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp - 0x24], 1
mov dword [ebp + 0x70], esi
jne 0x45b825
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00443d5b
test al, al
je 0x45b843
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004504ce
mov esi, dword [ebp + 0x70]
pop ecx
pop ecx
dec esi
dec esi
jmp 0x45bff8
push 4
push esi
push str._get
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b887
add esi, 8
cmp word [esi], 0x3a
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x70], esi
jne 0x45b876
inc esi
inc esi
mov dword [ebp + 0x70], esi
mov ax, word [esi]
call fcn.00443d5b
test al, al
je 0x45b843
lea eax, [ebp + 0x40]
jmp 0x45b834
push 3
push esi
push 0x4c5c94
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b8a7
add esi, 4
mov byte [ebp + 7], 1
jmp 0x45bff8
push 2
push esi
push 0x4c5c90
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b8d6
add esi, 4
mov dword [ebp + 0x70], esi
mov dword [ebp - 0x98], 1
lea eax, [ebp - 0x98]
jmp 0x45b834
push 2
push esi
push 0x4c5c8c
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45b95d
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x70]
add esi, 4
push eax
mov dword [ebp + 0x70], esi
call fcn.0047b6b7
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0047b6b7
mov esi, dword [ebp - 0x74]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp - 0x70], esi
call fcn.004504ce
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004504ce
add esp, 0x20
cmp dword [ebp - 0x84], ebx
jg 0x45b942
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 0x45bff8
jmp 0x45b843
cmp di, 0x2d
jne 0x45bbf2
inc esi
push 1
inc esi
push esi
push 0x4c1290
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45ba0e
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 0x45b9bb
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x45b9b3
cmp cx, 0x3a
je 0x45b9b3
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45b998
cmp word [esi], bx
je 0x45b9bb
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.00450873
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45c05a
mov esi, dword [ebp - 0xbc]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45ba00
mov esi, 0x4c5c84
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45ba0e
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45ba36
mov dword [ebp + 0x50], 1
mov dword [ebp + 0x54], ebx
add esi, 6
jmp 0x45bff8
push 5
push esi
push str.wchar
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45ba5c
mov dword [ebp + 0x50], 2
mov dword [ebp + 0x54], ebx
add esi, 8
jmp 0x45bff8
push 5
push esi
push str.short
call fcn.0043f11b
add esp, 0xc
test al, al
jne 0x45ba4a
push 3
push esi
push 0x4c51b4
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45ba91
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, edi
jmp 0x45bff8
push 6
push esi
push str.intptr
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bab3
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
add esi, 0xa
jmp 0x45bff8
push 5
push esi
push str.intpe
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bad5
add esi, 8
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
jmp 0x45bff8
push 5
push esi
push str.float
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45baf4
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
jmp 0x45ba51
push 6
push esi
push str.double
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bb16
push 8
pop eax
mov dword [ebp - 0x88], eax
mov dword [ebp + 0x50], eax
jmp 0x45baa8
push 7
push esi
push str.ldouble
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bb3e
push 8
pop eax
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], ebx
add esi, 0xc
jmp 0x45bff8
push 5
push esi
push str.int64
call fcn.0043f11b
add esp, 0xc
test al, al
push 8
jne 0x45bbe7
push esi
push str.longlong
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bb79
add esi, 0xe
mov dword [ebp + 0x50], 8
jmp 0x45bacd
push edi
push esi
push str.long
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bb94
mov dword [ebp + 0x50], edi
jmp 0x45ba2b
push 6
push esi
push str.intsys
call fcn.0043f11b
add esp, 0xc
test al, al
jne 0x45bf5c
push 3
push esi
push 0x4c4eac
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bff8
xor eax, eax
mov ax, word [esi + 6]
and eax, 0xffdf
cmp ax, 0x53
je 0x45bbe5
cmp ax, 0x41
jb 0x45bbe5
cmp ax, 0x5a
jbe 0x45bff8
push 4
pop eax
add esi, eax
mov dword [ebp + 0x50], eax
jmp 0x45bacd
cmp di, 0x3f
jne 0x45bff8
inc esi
push 1
inc esi
push esi
push 0x4c1290
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bca5
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 0x45bc52
mov eax, ecx
call fcn.0040f4c7
test al, al
jne 0x45bc4a
cmp cx, 0x3a
je 0x45bc47
inc esi
inc esi
mov cx, word [esi]
cmp cx, bx
jne 0x45bc2a
jmp 0x45bc4a
mov dword [ebp + 0x5c], esi
cmp word [esi], bx
je 0x45bc52
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.00450873
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0x45c05a
mov esi, dword [ebp - 0xd0]
cmp word [esi], di
mov dword [ebp - 0x10], ebx
jne 0x45bc97
mov esi, 0x4c5c84
mov eax, dword [ebp - 0x64]
cmp eax, ebx
jle 0x45bca5
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], bx
push 4
pop edi
push edi
push esi
push str.char
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bd01
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 0x45bcd9
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45bceb
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45bfe9
mov dword [ebp + 0x2c], str.0x_02I64X
jmp 0x45bfe7
push 5
push esi
push str.wchar
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bd20
push 2
pop edx
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x1c], edx
jmp 0x45bd3f
push 5
push esi
push str.short
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bd7c
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 0x45bd54
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45bd66
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45bfe9
mov dword [ebp + 0x2c], str.0x_04I64X
jmp 0x45bfe7
push 3
push esi
push 0x4c51b4
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bdb7
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 0x45bdae
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
cmp word [eax], 0x30
jmp 0x45bdfc
push 6
push esi
push str.intptr
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45be07
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 0x45bde6
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45bdf8
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45bfe9
jmp 0x45bfe7
push 5
push esi
push str.float
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45be2f
add esi, 8
mov dword [ebp - 0x78], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x1c], edi
jmp 0x45bff8
push 6
push esi
push str.double
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45be5d
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 0x45bff8
push 7
push esi
push str.ldouble
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45be7c
push 8
pop eax
add esi, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x45be4f
push 5
push esi
push str.int64
call fcn.0043f11b
add esp, 0xc
test al, al
push 8
je 0x45be97
pop edx
add esi, edx
jmp 0x45beaf
push esi
push str.longlong
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bee8
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 0x45bec0
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45bed2
mov dword [ebp - 0xac], edx
cmp cx, 0x30
jne 0x45bfe9
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45bfe7
push edi
push esi
push str.long
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bf21
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 0x45bfc8
lea esi, [eax - 2]
jmp 0x45bfc8
push 5
push esi
push str.intpe
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bf3a
add esi, 8
jmp 0x45bfb7
push 6
push esi
push str.intsys
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bf9e
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x1c], edi
je 0x45bf5c
mov esi, dword [ebp + 0x5c]
add esi, 0xfffffff6
xor eax, eax
add esi, 0xa
cmp byte [0x4d7c31], 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 0x45bff8
cmp byte [0x4d7c31], 3
mov esi, eax
je 0x45bf95
mov dword [ebp + 0x2c], str.0x_08I64X
jmp 0x45bff8
mov dword [ebp + 0x2c], str.0x_016I64X
jmp 0x45bff8
push 3
push esi
push 0x4c4eac
call fcn.0043f11b
add esp, 0xc
test al, al
je 0x45bff8
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 0x45bfc8
mov esi, dword [ebp + 0x5c]
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x73
jne 0x45bfda
mov dword [ebp - 0xac], edi
cmp cx, 0x30
jne 0x45bfe9
mov dword [ebp + 0x2c], str.0x_08I64X
mov esi, eax
lea eax, [esi + 2]
cmp word [eax], 0x40
jne 0x45bff8
add dword [ebp + 0x2c], 4
mov esi, eax
inc esi
inc esi
cmp dword [ebp - 0x10], ebx
jne 0x45b560
lea ecx, [ebp - 0x6c]
call fcn.004441a1
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.00438f7b
push 0x3b
push 0x2c
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
call fcn.00438f7b
cmp dword [ebp + 0x30], 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp + 0x4c], eax
je 0x45c064
cmp word [eax], bx
jne 0x45c064
mov eax, dword [ebp - 0x6c]
cmp word [eax], bx
jne 0x45c064
xor esi, esi
jmp 0x45d795
mov esi, 0x80070057
jmp 0x45d79d
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 0x45c0a5
dec dword [ebp - 0x24]
js 0x45c09c
mov ecx, dword [ebp - 0x24]
inc ecx
sub dword [ebp - 0x24], ecx
dec ecx
mov eax, dword [eax + 0x24]
jne 0x45c093
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x2b], 0
je 0x45c0a5
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x40]
cmp eax, ebx
jle 0x45c0b9
dec eax
js 0x45c0b9
inc eax
dec eax
mov edx, dword [edx + 0x24]
jne 0x45c0b0
mov dword [ebp - 0x10], edx
cmp byte [ebp + 0x37], 0
je 0x45c0c6
mov byte [ebp + 0x4b], 0
mov dword [ebp + 0x30], ebx
push 0x4d8d1c
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 0x45c140
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.004441e6
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 0x45ceb2
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.004441a1
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 0x45c25a
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045b3b9
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 0x45cc48
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045b3b9
mov eax, dword [ebp + 0x60]
add esp, 0xc
cmp word [eax], di
je 0x45c23d
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.0045b3b9
add esp, 0xc
test eax, eax
jle 0x45c23d
cmp dword [ebp + 0x40], edi
jne 0x45c246
cmp dword [ebp - 0x40], edi
je 0x45cc48
movzx ecx, byte [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
call fcn.004ac930
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
cmp dword [ebp + 0x40], edi
je 0x45cc48
cmp dword [ebp - 0x40], edi
jne 0x45cc48
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x40], eax
jmp 0x45cc48
cmp byte [ebp + 7], 0
je 0x45c278
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.00447a52
pop ecx
pop ecx
push 2
mov dword [ebp + 0x60], eax
pop esi
jmp 0x45cb34
test byte [ebp + 0x30], 0x80
je 0x45c5a3
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 0x45c358
push 2
mov byte [ebp + 0x2a], 1
pop edx
cmp ax, 0x3b
je 0x45c2e2
cmp ax, 0x2c
je 0x45c2e2
cmp ax, 0x3a
je 0x45c2e2
cmp ax, 0x40
je 0x45c2e2
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45c2bd
mov ax, word [esi]
cmp ax, cx
je 0x45c2f2
mov word [esi], cx
add esi, edx
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45c32f
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x40], esi
je 0x45c32f
cmp ax, 0x3b
je 0x45c322
cmp ax, 0x2c
je 0x45c322
cmp ax, 0x3a
je 0x45c322
add esi, edx
mov ax, word [esi]
cmp ax, cx
mov dword [ebp + 0x38], esi
jne 0x45c303
cmp word [esi], cx
je 0x45c32f
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.004108b2
test eax, eax
je 0x45cef3
mov ecx, dword [eax + 4]
mov dword [ebp + 0x60], ecx
mov ebx, dword [eax + 0x10]
xor edi, edi
jmp 0x45c43a
push 5
push esi
push str._shm_
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45c489
add esi, 0xa
mov ecx, esi
xor edi, edi
jmp 0x45c391
cmp ax, 0x3b
je 0x45c39c
cmp ax, 0x2c
je 0x45c39c
cmp ax, 0x3a
je 0x45c39c
cmp ax, 0x40
je 0x45c39c
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45c377
mov ax, word [esi]
cmp ax, di
je 0x45c3ac
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp ax, 0x40
jne 0x45c3e9
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x40], esi
je 0x45c3e9
cmp ax, 0x3b
je 0x45c3dc
cmp ax, 0x2c
je 0x45c3dc
cmp ax, 0x3a
je 0x45c3dc
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
mov dword [ebp + 0x38], esi
jne 0x45c3bd
cmp word [esi], di
je 0x45c3e9
mov word [esi], di
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [ecx], di
je 0x45d457
mov eax, 0x4bca2c
push eax
push eax
push eax
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00440bca
cmp eax, edi
je 0x45d457
cmp dword [eax + 4], 0x14
jne 0x45d457
cmp dword [eax + 0x48], 0xfffffffe
jne 0x45d457
cmp dword [eax + 0x50], edi
jle 0x45d457
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 0x45c4ac
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0045b3b9
add esp, 0xc
test eax, eax
jle 0x45c4ac
cmp dword [ebp - 0x9c], 0
jl 0x45c4ac
mov eax, dword [ebp - 0xa0]
jg 0x45c476
test eax, eax
jbe 0x45c4ac
add dword [ebp + 0x60], eax
sub ebx, eax
sbb edi, dword [ebp - 0x9c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
jmp 0x45c4ac
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x38]
push eax
call fcn.0045b3b9
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 0x45c4bf
inc esi
inc esi
mov dword [ebp + 0x38], esi
cmp word [esi], 0x2a
sete byte [ebp + 0x13]
cmp byte [ebp + 0x13], 0
je 0x45c4d6
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.0045b3b9
xor esi, esi
add esp, 0xc
cmp dword [ebp + 0x60], esi
jne 0x45c4fd
mov dword [ebp + 0x60], 0x4bd7d2
jmp 0x45cb34
cmp eax, 1
jge 0x45c533
cmp byte [ebp + 0x2a], 0
jne 0x45c54e
cmp byte [ebp + 0x13], 0
je 0x45c51d
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cdq
mov dword [ebp - 0x14], edx
jmp 0x45c551
cmp byte [ebp + 6], 0
jg 0x45c54e
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp - 0x14], esi
jmp 0x45c551
cmp byte [ebp + 0x2a], 0
je 0x45c54e
cmp dword [ebp - 0x14], edi
jl 0x45c54e
jg 0x45c547
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jbe 0x45c551
mov eax, ebx
mov dword [ebp - 0x14], edi
jmp 0x45c551
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x14], esi
jl 0x45cf2d
jg 0x45c564
cmp eax, esi
jb 0x45cf2d
mov esi, eax
mov eax, dword [ebp + 0x30]
and ax, 0x81
xor ebx, ebx
cmp al, 0x81
jne 0x45cc48
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp + 0x60]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x4c]
call fcn.004108b2
test eax, eax
je 0x45cf56
test byte [eax + 0x17], 0xc0
je 0x45cf6a
and dword [eax + 4], ebx
jmp 0x45cf6a
xor edi, edi
cmp dword [ebp + 0x30], edi
je 0x45cb3b
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x40], edi
xor ecx, ecx
jmp 0x45c5d2
cmp cx, 0x2c
je 0x45c5df
cmp cx, 0x3b
je 0x45c5df
cmp cx, 0x3a
je 0x45c5df
cmp cx, 0x7c
je 0x45c5df
inc eax
inc eax
mov cx, word [eax]
cmp cx, di
mov dword [ebp + 0x24], eax
jne 0x45c5b8
jmp 0x45c5ee
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.00438f7b
mov ecx, dword [ebp - 0x10]
push edi
push 0xffffffffffffffff
push edi
push dword [ebp + 0x44]
call fcn.004108b2
cmp eax, edi
je 0x45d457
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 0x45c67d
push dword [ebp - 0x6c]
mov dword [ebp - 0x14], ebx
push esi
push dword [ebp + 0xc]
call fcn.00446768
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp word [eax], bx
je 0x45cf9f
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 0x45cb34
cmp ecx, 4
jne 0x45c7b0
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.004108b2
cmp word [ebp + 0x40], 0
mov edi, eax
jne 0x45cfef
test edi, edi
je 0x45cc48
test byte [edi + 0x17], 0xc0
je 0x45cc48
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 0x45c6d9
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 0x45c706
cmp ebx, edx
jl 0x45c706
jg 0x45cef3
cmp esi, ecx
ja 0x45cef3
mov eax, esi
sub eax, ecx
mov ecx, ebx
sbb ecx, edx
mov dword [ebp - 0xe0], ecx
js 0x45c766
jg 0x45c71c
test eax, eax
jbe 0x45c766
push 0
mov eax, esi
add eax, 1
mov ecx, ebx
push 2
adc ecx, 0
push ecx
push eax
call fcn.004aa100
add eax, 2
lea ecx, [edi + 4]
push eax
mov dword [ebp - 0xe0], edx
mov dword [ebp + 0x7c], eax
call fcn.004441e6
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.004aa0a0
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 0x45c79f
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.004443d2
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45c777
push dword [ebp + 0x78]
push dword [ebp + 8]
push edi
call fcn.00413fe3
jmp 0x45d0fe
cmp ecx, 0x100
jne 0x45ca17
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.004108b2
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.00405656
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405656
and dword [ebp + 0x40], 0
add esp, 0x10
cmp dword [ebp - 8], 0
jg 0x45c83f
jl 0x45c832
cmp dword [ebp - 0xc], 0
jae 0x45c83f
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.00405656
mov eax, dword [ebp + 0x24]
movzx eax, word [eax]
pop ecx
pop ecx
mov ecx, eax
or ecx, 0x20
cmp cx, 0x73
je 0x45c865
cmp cx, 0x69
jne 0x45c87a
mov ecx, eax
xor ecx, 0x20
test ax, ax
mov dword [ebp + 8], eax
mov dword [ebp - 0xd8], ecx
jne 0x45c884
jmp 0x45c880
mov ecx, dword [ebp - 0xd8]
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp - 0x30], eax
jl 0x45cef3
jg 0x45c89a
cmp dword [ebp - 0x34], eax
jb 0x45cef3
cmp dword [ebp - 0x28], eax
jl 0x45cef3
jg 0x45c8ae
cmp dword [ebp - 0x2c], eax
jb 0x45cef3
cmp dword [ebp - 8], eax
jl 0x45cef3
jg 0x45c8c2
cmp dword [ebp - 0xc], eax
jbe 0x45cef3
cmp dword [ebp - 0x28], ebx
jg 0x45cef3
jl 0x45c8d6
cmp dword [ebp - 0x2c], esi
ja 0x45cef3
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x30], eax
jg 0x45cef3
jl 0x45c8f0
cmp dword [ebp - 0x34], edi
ja 0x45cef3
cmp dword [ebp + 0x40], 0
jne 0x45c93c
sub esi, dword [ebp - 0x2c]
sbb ebx, dword [ebp - 0x28]
sub edi, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, ebx
jl 0x45c910
jg 0x45c90c
cmp edi, esi
jbe 0x45c910
mov edi, esi
mov eax, ebx
cmp dword [ebp - 8], eax
jl 0x45c922
jg 0x45c91c
cmp dword [ebp - 0xc], edi
jbe 0x45c922
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
test cl, 0x20
je 0x45c93c
push 0
push 2
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004aa100
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
jl 0x45ca08
jg 0x45c952
cmp dword [ebp - 0xc], 0
jbe 0x45ca08
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 0x45c98f
cmp dword [ebp + 0x40], 0
je 0x45c982
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
jmp 0x45ca05
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
jmp 0x45ca05
cmp dx, 0x53
jne 0x45c9b2
cmp dword [ebp + 0x40], 0
je 0x45c9a5
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
jmp 0x45ca05
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x45ca05
cmp dx, 0x69
jne 0x45c9d5
cmp dword [ebp + 0x40], 0
je 0x45c9c8
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
jmp 0x45ca05
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIA]
jmp 0x45ca05
cmp dx, 0x49
jne 0x45c9f8
cmp dword [ebp + 0x40], 0
je 0x45c9eb
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x45ca05
push dword [ebp - 0xc]
push ecx
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
jmp 0x45ca05
push dword [ebp - 0xc]
push ecx
push eax
call fcn.0043ddc8
add esp, 0xc
mov dword [ebp + 0x38], eax
movsx eax, word [ebp + 0x38]
push eax
push 0x4bd234
jmp 0x45c654
cmp ecx, 1
jne 0x45cabf
xor ebx, ebx
push ebx
push 5
push ebx
shr esi, 1
push esi
call fcn.004aa1b0
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xe0], edx
call fcn.0044406f
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 0x45ca6b
jl 0x45ca64
cmp esi, ebx
jae 0x45ca6b
xor esi, esi
mov dword [ebp - 0x48], ebx
jmp 0x45ca80
mov eax, dword [ebp - 0xe0]
cmp edx, eax
jl 0x45ca80
jg 0x45ca7b
cmp esi, edi
jbe 0x45ca80
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.004aa100
mov edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004441e6
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 0x45cc48
cmp ecx, 2
jne 0x45cb17
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
mov dword [ebp - 0xb4], ebx
call fcn.004441e6
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 0x45caf0
xor esi, esi
lea eax, [esi + 1]
push eax
lea ecx, [ebp + 0x58]
call fcn.004441e6
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 0x45cc48
cmp ecx, 0x20
jne 0x45d741
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 0x45cc48
cmp byte [ebp + 0x67], 0
je 0x45cb6a
mov eax, dword [ebp + 0x60]
cmp word [eax], di
je 0x45cb6a
xor ecx, ecx
mov cl, byte [ebp - 0xa4]
or cl, byte [ebp + 0x67]
push ecx
push eax
lea ecx, [ebp + 0x44]
call fcn.0044cf95
mov ecx, dword [ebp - 0x10]
push eax
call fcn.0045b2bf
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x98]
dec eax
cmp eax, edi
jl 0x45cb94
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.004538d5
dec edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x60], eax
jne 0x45cb78
mov eax, dword [ebp + 0x60]
xor edi, edi
cmp word [eax], di
je 0x45cbbb
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x78]
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0045a96e
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 0x45d106
jl 0x45cbda
cmp dword [ebp + 0x1c], edi
ja 0x45d106
cmp dword [ebp + 0x54], edi
jg 0x45d449
jl 0x45cbee
cmp dword [ebp + 0x50], edi
ja 0x45d449
cmp byte [ebp + 0x4b], 0
je 0x45cc38
cmp ebx, edi
jl 0x45d15e
jg 0x45cc06
cmp esi, edi
jbe 0x45d15e
mov edi, 0x4d8d1c
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.004108b2
test eax, eax
mov dword [ebp + 8], eax
jne 0x45d628
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45cc48
cmp byte [ebp + 0x37], 0
je 0x45cc48
cmp byte [ebp + 0x2b], 0
je 0x45d707
xor eax, eax
cmp dword [ebp - 0x24], eax
mov dword [ebp + 8], eax
je 0x45cc80
cmp byte [ebp + 0x7c], al
jne 0x45cc80
mov ecx, dword [ebp + 0x18]
test byte [ecx + 9], 0xf
jne 0x45cc80
cmp byte [ebp + 0x73], al
jne 0x45cc80
cmp dword [ebp - 0x58], eax
jge 0x45cc80
cmp byte [ebp + 0x37], al
jne 0x45cc80
push dword [ebp + 0x60]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
jmp 0x45ce8a
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.004108b2
mov edi, eax
test edi, edi
mov dword [ebp - 0xb4], edi
jne 0x45ccfe
cmp dword [ebp - 0x58], eax
jge 0x45ccf2
cmp byte [ebp + 0x73], al
je 0x45ccb2
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
jmp 0x45ccba
mov ecx, esi
mov dword [ebp - 0xd8], ebx
cmp byte [ebp + 0x73], 0
mov eax, 0x4bca2c
jne 0x45ccc8
mov eax, dword [ebp + 0x60]
push ecx
mov ecx, dword [ebp + 0x18]
push 0xffffffffffffffff
push eax
push dword [ebp + 0x4c]
call fcn.00414be3
cmp dword [ebp - 0x80], 0
mov edi, eax
je 0x45ccee
test edi, edi
je 0x45ccf2
push dword [ebp - 0x80]
lea ecx, [edi + 8]
call fcn.0044cff1
test edi, edi
jne 0x45ccfe
mov dword [ebp + 8], 1
jmp 0x45ce8a
cmp dword [ebp - 0x58], 0
jl 0x45ce10
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 0x45cd2e
jb 0x45cd26
cmp dword [ebp - 0x3c], eax
ja 0x45cd2e
mov ebx, dword [ebp - 0x3c]
or ebx, dword [ebp - 0x38]
jne 0x45cd34
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 0x45ce8a
jb 0x45cd57
cmp dword [ebp - 0x60], esi
jae 0x45ce8a
cmp dword [ebp - 0x38], 0
ja 0x45cd67
cmp dword [ebp - 0x3c], 0
jbe 0x45ce8a
cmp edx, 2
jb 0x45cdff
xor eax, eax
cmp dword [ebp - 0x38], eax
jb 0x45ce8a
ja 0x45cd86
cmp dword [ebp - 0x3c], edx
jb 0x45ce8a
cmp edx, 2
jne 0x45cdb4
cmp edi, ecx
ja 0x45ce8a
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 0x45ce8a
cmp edx, 4
jne 0x45cdd1
cmp edi, ecx
ja 0x45ce8a
mov eax, dword [ebp - 4]
sub ecx, edi
shr ecx, 2
inc ecx
rep stosd dword es:[edi], eax
jmp 0x45ce8a
cmp edx, 8
jne 0x45cdff
cmp edi, ecx
ja 0x45ce8a
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 0x45ce8a
push dword [ebp - 0x3c]
push dword [ebp - 4]
push edi
call fcn.004aa0a0
add esp, 0xc
jmp 0x45ce8a
cmp byte [ebp + 0x37], 0
jne 0x45ce8a
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x45ce4f
mov al, byte [ecx + 0x17]
and al, 0xc0
cmp al, 0xc0
jne 0x45ce47
cmp byte [ebp + 0x73], 0
je 0x45ce37
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.0043e50a
add esp, 0x10
jmp 0x45ce8a
test al, al
je 0x45ce4f
and dword [ecx + 4], 0
cmp byte [ebp + 0x73], 0
je 0x45ce7b
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 0x45ce8a
test ecx, ecx
je 0x45ce8a
push esi
push dword [ebp + 0x60]
mov ecx, edi
call fcn.00402e84
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
cmp dword [ebp - 0x68], 0
jle 0x45d77a
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.00440dc5
push dword [ebp - 0x70]
mov dword [ebp + 0x60], esi
push dword [ebp - 0xcc]
push esi
call fcn.00440dc5
mov eax, dword [ebp - 0x84]
add dword [ebp - 0x74], eax
add esp, 0x18
add dword [ebp - 0x70], eax
jmp 0x45c140
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45cf23
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x45d795
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
cmp eax, esi
jmp 0x45cf1a
mov ecx, dword [ebp + 0x18]
push 0
push 0xffffffffffffffff
push 0x4bca2c
push dword [ebp + 0x4c]
call fcn.00414be3
xor ecx, ecx
cmp dword [ebp + 0x30], 0x83
mov edx, 0xc0000000
je 0x45cf7f
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.0043dd41
jmp 0x45d741
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.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45d795
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d795
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.00405656
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405656
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x24]
push eax
call fcn.00405656
add esp, 0x18
cmp dword [ebp - 0x30], 0
jl 0x45cef3
jg 0x45d04c
cmp dword [ebp - 0x34], 0
jb 0x45cef3
cmp dword [ebp - 0x28], 0
jl 0x45cef3
jg 0x45d062
cmp dword [ebp - 0x2c], 0
jbe 0x45cef3
cmp dword [ebp - 0x30], ebx
jg 0x45cef3
jl 0x45d076
cmp dword [ebp - 0x34], esi
ja 0x45cef3
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp + 0x20]
jg 0x45cef3
mov ecx, dword [ebp - 0x4c]
jl 0x45d090
cmp ecx, dword [ebp + 0x1c]
ja 0x45cef3
test eax, eax
jg 0x45d09e
jl 0x45d09a
test ecx, ecx
jae 0x45d09e
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 0x45d0bd
jg 0x45d0b8
cmp dword [ebp - 0x2c], esi
jbe 0x45d0bd
mov dword [ebp - 0x2c], esi
mov eax, ebx
cmp eax, dword [ebp + 0x20]
jl 0x45d0d4
jg 0x45d0cc
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp + 0x1c]
jbe 0x45d0d7
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
jmp 0x45d0d7
mov edx, dword [ebp - 0x2c]
test eax, eax
jl 0x45d741
jg 0x45d0e9
test edx, edx
jbe 0x45d741
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.00413f99
add esp, 0xc
jmp 0x45d741
cmp dword [ebp + 0x1c], 0x2a
jne 0x45d114
cmp eax, edi
je 0x45d457
cmp dword [ebp - 0x8c], edi
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0xb4], eax
jle 0x45d12f
mov dword [ebp + 0x50], 4
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x14], ecx
lea ecx, [ebp + 0x7c]
call fcn.004441a1
mov ecx, dword [ebp + 0xc]
push 0x2c
push 0x3a
lea eax, [ebp + 0x7c]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.00438f7b
mov eax, dword [ebp + 0x7c]
cmp word [eax], di
jne 0x45d18a
lea ecx, [ebp + 0x7c]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
cmp eax, edi
jmp 0x45d768
mov eax, dword [ebp + 0x14]
xor bl, bl
cmp word [eax], 0x7e
jne 0x45d19c
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.004503b3
add esp, 0xc
test bl, bl
je 0x45d1d0
push dword [ebp]
movsx eax, bl
push dword [ebp - 4]
cdq
push edx
push eax
call fcn.004aa1b0
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 0x45d201
mov ecx, dword [ebp + 0x4c]
mov word [ecx + eax*2], di
mov ecx, dword [ebp + 0x4c]
mov ax, word [ecx]
call fcn.00443d5b
test al, al
je 0x45d239
and dword [ebp + 0x78], 0
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x70]
push eax
mov dword [ebp + 0x70], ecx
call fcn.0044073a
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 0x45d25a
push 0
push 0xffffffffffffffff
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.004108b2
test eax, eax
je 0x45d25a
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 0x45d3f7
jg 0x45d275
cmp dword [ebp - 4], ebx
jb 0x45d3f7
and dword [ebp + 0x78], 0
add edi, dword [ebp - 0x20]
xor esi, esi
inc esi
cmp dword [ebp - 0x8c], esi
jl 0x45d2af
push 4
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.004443d2
mov eax, dword [eax]
mov edi, dword [edi]
add esp, 0x10
add edi, eax
inc esi
cmp esi, dword [ebp - 0x8c]
jle 0x45d287
push dword [ebp - 0xb4]
lea eax, [ebp - 0x114]
push edi
push eax
call fcn.00413fe3
xor edx, edx
add esp, 0xc
cmp dword [ebp - 0x78], edx
je 0x45d2ef
fld dword [ebp - 0x114]
push 0x4c5c14
push ecx
lea eax, [ebp - 0x1fc]
fstp dword [esp]
push eax
call fcn.00497e3b
add esp, 0xc
jmp 0x45d3f7
cmp dword [ebp - 0x88], edx
je 0x45d318
fld qword [ebp - 0x114]
push 0x4c5194
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.00497e64
jmp 0x45d3f4
cmp dword [ebp - 0x7c], edx
je 0x45d33e
fld qword [ebp - 0x114]
push 0x4c5194
push ecx
push ecx
lea eax, [ebp - 0x1fc]
fstp qword [esp]
push eax
call fcn.00497e64
jmp 0x45d3f4
cmp dword [ebp + 0x1c], 0x64
jne 0x45d357
xor eax, eax
cmp eax, edx
jne 0x45d357
push dword [ebp - 0x114]
push str.0x_p
jmp 0x45d39c
mov ecx, dword [ebp - 0xac]
cmp ecx, 1
jne 0x45d372
xor eax, eax
cmp eax, edx
jne 0x45d372
movsx eax, byte [ebp - 0x114]
push eax
jmp 0x45d397
cmp ecx, 2
jne 0x45d386
xor eax, eax
cmp eax, edx
jne 0x45d386
movsx eax, word [ebp - 0x114]
jmp 0x45d36f
cmp ecx, 4
jne 0x45d3ae
xor eax, eax
cmp eax, edx
jne 0x45d3ae
push dword [ebp - 0x114]
push 0x4bd234
lea eax, [ebp - 0x1fc]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x45d2e7
cmp ecx, 8
jne 0x45d3d9
xor eax, eax
cmp eax, edx
jne 0x45d3d9
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 0x45d3f4
push dword [ebp + 0x2c]
lea eax, [ebp - 0x1fc]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push eax
call fcn.00497dbc
add esp, 0x10
mov ecx, dword [ebp + 0x18]
lea eax, [ebp - 0x1fc]
push eax
push dword [ebp + 0x7c]
call fcn.004438ac
lea ecx, [ebp + 0x7c]
call fcn.0043dd41
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45d441
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x78]
jmp 0x45d795
cmp dword [ebp + 0x50], 0x2a
mov dword [ebp - 0x1c], edi
jne 0x45d483
cmp dword [ebp + 0x54], edi
jne 0x45d483
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
cmp eax, edi
jmp 0x45cf1a
cmp word [ecx], 0x26
mov dword [ebp + 0x70], ecx
mov byte [ebp + 0x7b], 0
mov byte [ebp + 0x7f], 1
jne 0x45d4db
push 0x3a
lea eax, [ebp + 0x70]
mov byte [ebp + 0x7f], 0
mov ebx, ecx
call fcn.00405636
mov eax, dword [ebp + 0x70]
mov si, word [eax]
cmp si, di
pop ecx
je 0x45d4b3
mov word [eax], di
mov ecx, dword [ebp + 0xc]
push edi
push 0xffffffffffffffff
push edi
push ebx
call fcn.004108b2
cmp si, di
je 0x45d4cb
mov ecx, dword [ebp + 0x70]
mov word [ecx], si
cmp eax, edi
je 0x45d4db
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fstp qword [ebp - 0x54]
cmp dword [ebp - 0x78], edi
je 0x45d500
cmp byte [ebp + 0x7f], 0
je 0x45d4f5
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004471b3
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp dword [ebp - 0x114]
jmp 0x45d55b
cmp dword [ebp - 0x88], edi
je 0x45d528
cmp byte [ebp + 0x7f], 0
je 0x45d51d
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004471b3
pop ecx
pop ecx
fld qword [ebp - 0x54]
fstp qword [ebp - 0x114]
jmp 0x45d55b
cmp dword [ebp - 0x7c], edi
jne 0x45d508
cmp byte [ebp + 0x7f], 0
je 0x45d54b
push dword [ebp + 0xc]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.004503b3
add esp, 0xc
jmp 0x45d55b
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 0x45d5b7
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x7e
jne 0x45d57a
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.004503b3
add esp, 0xc
cmp byte [ebp + 0x7b], 0
je 0x45d5b1
push dword [ebp - 0x50]
movsx eax, byte [ebp + 0x7b]
push dword [ebp - 0x54]
cdq
push edx
push eax
call fcn.004aa1b0
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.004108b2
mov edi, eax
test edi, edi
jne 0x45c6c3
mov ecx, dword [ebp + 0x18]
push eax
push 0xffffffffffffffff
push 0x4bca2c
push dword [ebp + 0x4c]
call fcn.00414be3
mov edi, eax
test edi, edi
jne 0x45c6c3
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45d620
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x45d795
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 0x45d6b1
jl 0x45d649
cmp dword [ebp - 0x60], ecx
jae 0x45d6b1
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.004aa100
mov ebx, eax
lea eax, [ebx + 2]
push eax
mov ecx, edi
mov dword [ebp - 0xe0], edx
call fcn.004441e6
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 0x45d6b7
cmp byte [ebp + 0x7f], 0
je 0x45d6aa
push dword [ebp - 0x60]
push dword [ebp + 0x78]
push edi
call fcn.00413fe3
add esp, 0xc
mov eax, dword [ebp - 0x60]
add edi, eax
jmp 0x45d6de
mov byte [ebp + 0x7f], 0
jmp 0x45d650
cmp byte [ebp + 0x4b], 2
jne 0x45d6eb
cmp byte [ebp + 0x7f], 0
push dword [ebp - 0x60]
lea eax, [edi + esi]
je 0x45d6d4
push dword [ebp + 0x78]
push eax
call fcn.00413fe3
jmp 0x45d6db
push edi
push eax
call fcn.00413f99
add esp, 0xc
push esi
push dword [ebp + 0x60]
push edi
call fcn.00413fe3
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x48]
push 0x4d8d1c
mov dword [eax + 0x14], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45d741
mov ecx, dword [ebp + 0x18]
xor edi, edi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x44]
push dword [ebp + 0x4c]
call fcn.004108b2
mov esi, eax
cmp esi, edi
je 0x45d741
test byte [esi + 0x17], 0xc0
je 0x45d72e
mov eax, dword [esi + 4]
mov word [eax], di
jmp 0x45d741
push 0x4bca2c
lea ecx, [esi + 4]
call fcn.0044cf95
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
lea ecx, [ebp + 0x58]
call fcn.0043dd41
lea ecx, [ebp + 0x44]
call fcn.0043dd41
lea ecx, [ebp + 0x3c]
call fcn.0043dd41
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45c053
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x45c053
lea ecx, [ebp + 0x5c]
call fcn.0043dd41
mov eax, 0x4d8d1c
test eax, eax
je 0x45d792
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.0043dd41
pop edi
lea ecx, [ebp - 0xb0]
call fcn.0043dd41
lea ecx, [ebp - 0x94]
call fcn.0043dd41
mov eax, esi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10